2012-12-17 100 views
1

如何在輸入爲空的情況下檢查jQuery?如果輸入爲空,請使用jQuery進行檢查

我想:

$('#location').keydown(function(event) { 
    if($("#location").val().length == 0) { $("#finalSearch").attr('disabled', 'true'); } 
    if($("#location").val().length != 0) { $("#finalSearch").removeAttr('disabled'); } 
}); 

但是,我想即使沒有什麼在這個領域的警報彈出。

我想做什麼:

  • 沒有什麼:錯誤消息。

  • 有一封信:沒有錯誤信息。

  • 我刪除了這封信:錯誤信息。

  • 如果該字段是填充,但另一個函數:沒有錯誤消息。

感謝您的幫助。

+0

無法檢測場被一個函數填充,除非其他功能觸發事件和事件的處理程序代碼然後管理你想要的東西 – charlietfl

+0

如果'keydown'事件不適合你,你必須使用'bind/delegate/on'等jQuery事件來嘗試'keyup/keypress'事件, 。它應該適用於其中的任何一個,因爲我以前曾多次面對過您的問題。 – RGR

回答

4

您應該使用keyup事件,而不是​​- 關鍵領域裏還沒有更新,以便測試value在這一點上並沒有給你正確的結果。

blur上也做同樣的測試也不會有什麼壞處,以便用戶可以通過編輯菜單或拖動鼠標或其他方式改變字段。

而且,除非使用真的老版本的jQuery的使用.prop()方法,而不是.attr()設置禁用狀態:

$('#location').on('keyup blur', function(event) { 
    $("#finalSearch").prop('disabled', this.value.length === 0); 
}); 
+0

非常感謝!作品! –

0

你幾乎已經在那裏了,不知道問題出在哪裏;但是這個工作。

$('#location').on('keyup', function() { 
    console.log($(this).val().length); 
    if($(this).val().length == 0) { 
     $('#finalSearch').prop('disabled', true); 
    }else{ 
     $('#finalSearch').prop('disabled',false); 
    } 
});​ 

The jsFiddle

+0

解決方案是keyup。謝謝。 –

相關問題