Javascript 单击jQuery中的空输入框

Javascript 单击jQuery中的空输入框,javascript,jquery,onclick,jquery-events,Javascript,Jquery,Onclick,Jquery Events,我不知道为什么这不起作用,但我确信这是一个非常常见的Javascript。我的语法明显缺乏,我不知道为什么: <input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" /> 不,您需要$(this).val(“”);或美元(本).val(“”);清空它 &l

我不知道为什么这不起作用,但我确信这是一个非常常见的Javascript。我的语法明显缺乏,我不知道为什么:

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" />

不,您需要$(this).val(“”);或美元(本).val(“”);清空它

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val('');} return false;" />

将其放在单独的js文件中

如果在失去焦点后未键入任何内容,则会将其返回初始值

$(document).ready( function() {
    $("#search").focus( function() {
        if ( $(this).val()=="search") {
            $(this).val('');
        } 
    });

    $("#search").blur( function() {
        if ( $(this).val()=="") {
            $(this).val('search');
        } 
    });
});
函数搜索(文本框)
{
if($(textBox).val()=='search'){
$(文本框).val()='';
} 
返回false;
}

试试这个,然后调试

您的问题在于这一行代码:

$(this).val() = ''
在jQuery中设置值的正确方法是:

$(this).val("Your value here");
此外,内联JS从来都不是一个好主意。改用这个:

$("#search").on("click", function() {
    if ($(this).val() == "search")
        $(this).val("")
});​
给你

参考资料:

应该是

$(this).val('');

请参阅文档。

它应该是这样的:

<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() = '';

正确的方法:$this.val(“”);
不正确的方式:$this.val()='';

使用HTML5占位符,这变得更容易:

<input type="text" name="search" placeholder="Enter your search query here">

旧浏览器不支持它,但如果您只针对现代浏览器,则可以使用它:

您可以使用
$(this.val(“”)


这也很棒,我在James的回答之后写了同样的代码。不过,谢谢!占位符属性确实使这更容易(如果浏览器支持的话),但是您应该避免仅仅将链接作为答案发布。链接有腐烂和消失的趋势。主要内容应张贴在您的答案中。
<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">