jQuery中的空输入框onclick

问题描述 投票:9回答:8

我不知道为什么它不起作用,但是我确定它是Java语言中非常常见的一部分。我的语法显然缺乏,我也不知道为什么:

<input type="text" value="search" id="search" name="q" onclick="javascript:if($(this).val() == 'search') {$(this).val() = '';} return false;" />
javascript jquery onclick jquery-events
8个回答
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()


4
投票

将其放在单独的js文件中...

如果失去焦点后没有输入任何内容,它将返回到初始值。

.val()

2
投票
$(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(''); 文档。


2
投票

应该是这样:

.val()

1
投票

使用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">


0
投票

否,您不需要$(this).val(“”);或$(this).val('');或将其清空

http://caniuse.com/#feat=input-placeholder

0
投票

您可以使用清除输入字段

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


-2
投票
$(this).val('');

尝试一下并进行调试。

© www.soinside.com 2019 - 2024. All rights reserved.