如何检测输入框中是否有任何更改

时间:2012-03-01 03:22:23

标签: jquery onchange inputbox

我有一个输入框,其默认值为“输入关键字”。我还有另外两个复选框,因此用户可以选择复选框并点击搜索或键入关键字并搜索或同时执行这两个操作。为了以防万一,他们只选择,复选框,我想检测输入框中是否有任何更改并将其值设置为空。我如何在jquery中执行此操作?

    <input name="KeywordBox" class="BasicSearchInputBox" type="text" 
size="300" value="Enter Keywords"/> 

像这样的东西???

if (~$("input").change(function ()) {do sth;}

试过这个:不工作..

        var keywords = encodeURIComponent($(".BasicSearchInputBox").val()); 

if (keywords.indexOf("Enter Keywords") != -1)
                 {
                     url += '&k=' + checkboxValues;
                     window.location.href=url;
                 }
            if (keywords.indexOf("Enter Keywords") == -1){               
             window.location.href=url+'&k='+keywords+checkboxValues;
             }

3 个答案:

答案 0 :(得分:0)

您可以直接进行比较,而不是使用indexOf

    var keywords = encodeURIComponent($(".BasicSearchInputBox").val()); 

    if (keywords == "Enter Keywords")
    {
        window.location.href = url + '&k=' + checkboxValues;
    }
    else{               
        window.location.href = url + '&k=' + keywords + checkboxValues;
    }

答案 1 :(得分:0)

听起来你正试图做水印。根据您的浏览器支持要求,您可能需要查看占位符属性。允许一个漂亮的水印而不实际更改文本框的值。 (有许多jQuery插件以跨浏览器的方式完成同样的事情。)

<input type="text" placeholder="Enter Keywords" /> 

答案 2 :(得分:0)

类似的东西:

function defaultTxt(obj) {
    var txt=obj.val();
    obj.focus(function(){
        if(obj.val()==txt) {obj.val('');}
    }).blur(function(){
        if(!obj.val()) {obj.val(txt);}
    });
}

然后通过循环调用它:

// Array or elements
var elems=['input'];
$(elems).each(function(){
    defaultTxt($(this));
});