JQuery:空输入框onclick

时间:2012-03-19 12:39:20

标签: javascript jquery javascript-events onclick

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

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

谢谢!

8 个答案:

答案 0 :(得分:16)

您的问题出在这行代码中:

$(this).val() = ''

在jQuery中设置值的正确方法是:

$(this).val("Your value here");

此外,内联JS从来都不是一个好主意。请改用:

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

这是a working fiddle

参考文献: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)

$(this).val() = '';

应该是

$(this).val('');

请参阅.val()文档。

答案 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();" />

试试这个并进行调试。