我不知道为什么这不起作用,但我确定这是一个非常常见的javascript。我的语法显然缺乏,我不知道为什么:
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" />
谢谢!
答案 0 :(得分:16)
您的问题出在这行代码中:
$(this).val() = ''
在jQuery中设置值的正确方法是:
$(this).val("Your value here");
此外,内联JS从来都不是一个好主意。请改用:
$("#search").on("click", function() {
if ($(this).val() == "search")
$(this).val("")
});
参考文献:jQuery .val()
答案 1 :(得分:4)
将它放在一个单独的js文件中......
如果在失去焦点后没有输入任何内容,则会将其返回到初始值。
$(document).ready( function() {
$("#search").focus( function() {
if ( $(this).val()=="search") {
$(this).val('');
}
});
$("#search").blur( function() {
if ( $(this).val()=="") {
$(this).val('search');
}
});
});
答案 2 :(得分:2)
答案 3 :(得分:2)
应该是这样的:
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" />
correct way : $this.val('');
incorrect way : $this.val() = '';
答案 4 :(得分:1)
使用HTML5占位符变得更容易:
<input type="text" name="search" placeholder="Enter your search query here">
旧浏览器不支持它,但如果您只针对现代浏览器,则可以使用它:http://caniuse.com/#feat=input-placeholder
答案 5 :(得分:0)
你不需要$(this).val(“”);或$(this).val('');把它清空
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" />
答案 6 :(得分:0)
UserDefaults.standard.dictionary(forKey: "mainDict")?.updateValue(subDict, forKey: "subDictTitle")
答案 7 :(得分:-2)
function search(textBox)
{
if($(textBox).val() == 'search') {
$(textBox).val() = '';
}
return false;
}
<input type="text" value="search" id="search" name="q" onclick="return search();" />
试试这个并进行调试。