2012-03-01 29 views
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; 
      } 
+0

檢查如果該值爲空或等於「輸入關鍵字」。如果這樣忽略,否則使用該值。 – j08691 2012-03-01 03:26:42

+0

試過不能正常工作.. :( – 2012-03-01 03:28:47

+0

不會encodeURIComponent對空間進行編碼嗎?不管是+還是%20,我都會忘記它是在這種情況下的。 – Rick 2012-03-01 03:32:49

回答

0

這聽起來像你正在嘗試做水印。根據您的瀏覽器支持要求,您可能需要查看placeholder屬性。允許一個漂亮的水印,而不需要實際改變文本框的值。 (有跡象表明,實現在一個跨瀏覽器的方式同樣的事情很多jQuery插件。)

<input type="text" placeholder="Enter Keywords" /> 
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; 
    } 
+0

你的意思是如果($('。BasicSearchInputBox')。val()==「Enter Keywords」) – 2012-03-01 03:32:16

+0

檢查我編輯回答。 – ShankarSangoli 2012-03-01 03:33:16

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)); 
}); 
相關問題