2012-09-13 55 views
0

我有一個字段12345,我需要提交一個表單自動當我輸入的最後一個數字,5 ...自動提交類型後,最後一個數字

如何才能用JavaScript做呢?

+2

數字必須是12345還是隻有5個數字? – orhanhenrik

+0

5位數字就像一個例子,真實的字段是99999-999 –

+3

糟糕的設計......如果用戶在最後一位數字上輸錯了,該怎麼辦?你會處理不好的數據。 –

回答

1

或者這樣:

$('input[type=text]').on('keyup', function(){ 
    if($(this).val().length == 5){ 
     alert('5 digit!'); 
     //$('#myform').submit(); 
    } 
}); 
+0

謝謝!對全部! –

1
$('.input').change(function() { 
     if ($(this).val().length >= 5) { 
      $('.Form').submit(); 
     } 
    }); 
2

我看到有人在普通的JavaScript創建了一個jQuery的結果,但這裏是一個

<input type="text" onkeyup="submitForm(this.value)"> 

function submitForm(str){ 
    if(str.length=5){ 
    document.forms["myform"].submit(); 
    } 
} 
+0

應該是keyup,因爲大多數瀏覽器在更改輸入值之前觸發javascript – orhanhenrik

+0

我更新了腳本。 – James

1
$('#input').keyup(function(){ 
    var content = new String($(this).val()); 
    if(content.length > 4){ 
     /* do your stuff here */ 
    } 
}); 
1

http://jsfiddle.net/3xHsn/

$("#foo").keyup(function(){ 
    var val = $(this).val(); 

    if (val.length == 5 && Number(val)){ 
     $("form").submit(); 
    } 
});​ 

這隻會提交如果值是5位數字,並且是一個有效的數字。另一種方法是使用正則表達式來驗證該值爲一個郵政編碼。

正則表達式的解決方案可以在這裏找到:http://jsfiddle.net/3xHsn/1/

$("#foo").keyup(function(){ 
    var val = $(this).val(); 
    var regex = /^\d{5}$/; 

    if (val.match(regex)){ 
     $("form").submit(); 
    } 
});​ 

正則表達式是相當簡單的聽說,而且只能檢查該字符串完全五位數只有5位。

1

此解決方案假定您已設置相應的maxlength屬性。該機還採用了 '輸入' 事件,這在我的經驗是遠遠超過按鍵,KEYUP更可靠等

HTML:

<form id="theform" action="gfdgf"> 
    <input id="someid" type="text" maxlength="5"/> 
</form>​ 

的jQuery:

$(document).on('input','#someid',function() { 
    var that=$(this); 
    if (that.val().length==that.attr('maxlength')) { 
     that.closest('form').submit(); 
    } 
});​ 

Fiddle