2013-08-03 19 views
0

我希望讓jQuery的jQuery的 - 讓每個領域的行動在形式上

$('#clients_name').keyup(function(){ 
    if($('#clients_name').val().length >= 2){ 
     (...) 
    } 
}); 

簡單的形式驗證,但我要檢查多個輸入(文字,選擇...),我不知道我應該怎麼改變第一行,爲我的表單中的任何輸入創建通用動作「keyup」(或某物)。這有利於輸入=文本,但選擇不...

$('input[type=text],select').keyup(function(){ 
    if($('#clients_name').val().length >= 2){ 
     (...) 
    } 
    if($('#clients_street').val().length >= 2){ 
     (...) 
    } 
}); 
+0

沒有選擇有'鍵控'功能?你不應該使用'更改'選擇? – krishgopinath

回答

2

只需使用This

$('input[type="text"]').keyup(function(){ // $('select,input[type="checkbox"]').on('change',function(){ 
    if ($(this).val().length >= 2) { 
     (...) 
    } 
    //Or can be 
    if (this.value.length >= 2) { 
     (...) 
    } 
}); 

.keyup將僅適用於該textboxes.You需要使用。對('變化',函數(){..})爲選擇框和檢查,收音機。

+1

'this.value'我會這樣想。 – krishgopinath

+0

我們可以這樣使用 – Gautam3164

+0

是的,我知道。但是無論如何,它將內部映射到'this.value'。那麼爲什麼浪費時間這樣做呢? – krishgopinath

0

傳遞給.keyup()的回調函數中this的上下文將被設置爲當前DOM元素。只需參考this。但select元素不會觸發keyup事件。所以我會改變你在那裏有:

$('input[type=text], select').on("change", function(){ 
    if(this.value.length >= 2){ 
     // do your validation 
    } 
}); 
+0

但在「選擇」鍵盤不起作用,對吧?還有收音機。我找不到普遍的行動... –