我有一个删除文本字段(称为termsField)并使用JQuery从div中清空文本(称为definitionContainer)的函数,当用户单击按钮时,我会激活该函数。

function clearText(target){
    var definitionDiv = document.getElementById("definitionContainer");
    $('#definitionContainer').empty(); //empty the div
    termsField.value = ""; //delete the text field
    $(target).val = "";


这是我的文本字段和按钮的HTML:

<input id="termsField" type="search" autocorrect="off"
     placeholder="Type something!" maxlength="2048">

<INPUT type="image" name="Clear" alt="Clear Search" src="clearX.png"
    height="22" width="22" onClick="clearText(this)">


有谁知道为什么清除definitionDiv在Firefox中有效但termsField.value = "";不起作用?两者都可以在Safari和Chrome中正常运行。我不介意测试IE,因为这是Web界面的一部分。

最佳答案

您还没有显示变量termsField的定义位置。也许您尚未定义它,这很可能是问题所在,因为并非所有浏览器都执行IE(由IE引入)的丑陋事情,即使用与文档中元素ID相对应的属性来污染全局对象。以下对我有用:

var termsField = document.getElementById("termsField");
termsField.value = "";


同样,尽管这与termsField的问题无关,但jQuery的val()是一种方法:

$(target).val("");

09-04 18:14