0

フィールド 12345 があり、最後の数字 5 を入力すると自動的にフォームを送信する必要があります...

どのようにjavascriptでそれを行うことができますか?

4

6 に答える 6

2

誰かがjqueryの結果を作成したのを見ましたが、これはプレーンなjavascriptの1つです

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

function submitForm(str){
   if(str.length=5){
     document.forms["myform"].submit();
   }
}
于 2012-09-13T14:41:01.613 に答える
1

このソリューションでは、それに応じて maxlength 属性が設定されていることを前提としています。私の経験では、キープレス、キーアップなどよりもはるかに信頼性の高い「入力」イベントも使用します。

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();
    }
});​

フィドル

于 2012-09-13T14:49:57.230 に答える
1
 $('.input').change(function() {
        if ($(this).val().length >= 5) {
            $('.Form').submit();
        }
    });
于 2012-09-13T14:40:11.677 に答える
1

またはこれ:

$('input[type=text]').on('keyup', function(){
    if($(this).val().length == 5){
        alert('5 digit!');
        //$('#myform').submit();
    }
});
于 2012-09-13T14:40:55.870 に答える
1
$('#input').keyup(function(){
    var content = new String( $(this).val() );
    if( content.length > 4 ){
        /* do your stuff here */
    }
});
于 2012-09-13T14:41:42.797 に答える
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 桁であり、5 桁のみであることを確認するだけです。

于 2012-09-13T14:42:25.073 に答える