我有一个删除文本字段(称为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,因为这是网络界面的一部分。
答案 0 :(得分:2)
您尚未显示变量termsField
的定义位置。也许你没有定义它,这很可能是问题所在,因为并非所有的浏览器都会使用与文档中元素ID相对应的属性来污染全局对象的丑陋事物(由IE引入)。以下工作对我来说很好:
var termsField = document.getElementById("termsField");
termsField.value = "";
此外,虽然这与termsField
的问题无关,但jQuery的val()
是一种方法:
$(target).val("");
答案 1 :(得分:1)
$(target)[0].value = 'blah';
或
$(target).val('blah')
此外,您没有在任何地方定义termsField
。如果您已经没有在外部范围内,请定义它。
答案 2 :(得分:0)
正确的语法是
document.getElementById('termsField').value = ""
假设'termsField'是id,如上所述。