我不知道为什么它不起作用,但是我确定它是Java语言中非常常见的一部分。我的语法显然缺乏,我也不知道为什么:
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" />
您的问题是此代码行:
$(this).val() = ''
在jQuery中设置值的正确方法是:
$(this).val("Your value here");
此外,内联JS从来不是一个好主意。改用它:
$("#search").on("click", function() {
if ($(this).val() == "search")
$(this).val("")
});
这里是a working fiddle。
将其放在单独的js文件中...
如果失去焦点后没有输入任何内容,它将返回到初始值。
.val()
$(document).ready( function() {
$("#search").focus( function() {
if ( $(this).val()=="search") {
$(this).val('');
}
});
$("#search").blur( function() {
if ( $(this).val()=="") {
$(this).val('search');
}
});
});
应该是
$(this).val() = '';
请参见$(this).val('');
文档。
应该是这样:
.val()
使用HTML5占位符,这变得更加容易:
<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() = '';
在较旧的浏览器中不支持,但是如果您仅针对现代浏览器,则可以使用它:<input type="text" name="search" placeholder="Enter your search query here">
否,您不需要$(this).val(“”);或$(this).val('');或将其清空
http://caniuse.com/#feat=input-placeholder
<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" />
$(this).val('');
尝试一下并进行调试。