0

我有一个默认值“输入关键字”的输入框。我还有另外两个复选框,因此用户可以选择复选框并点击搜索或键入关键字并搜索或两者都做。以防万一,他们只选择复选框,我想检测输入框中是否没有任何变化并将其值设置为空。我如何在 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;
             }
4

3 回答 3

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;
    }
于 2012-03-01T03:28:49.280 回答
0

听起来您正在尝试制作水印。根据您的浏览器支持要求,您可能需要查看 placeholder 属性。允许在不实际更改文本框值的情况下创建漂亮的水印。(有许多 jQuery 插件以跨浏览器的方式完成同样的事情。)

<input type="text" placeholder="Enter Keywords" /> 
于 2012-03-01T03:30:28.247 回答
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);}
    });
}

然后通过循环调用assign它:

// Array or elements
var elems=['input'];
$(elems).each(function(){
    defaultTxt($(this));
});
于 2012-03-01T03:31:39.060 回答