フィールド 12345 があり、最後の数字 5 を入力すると自動的にフォームを送信する必要があります...
どのようにjavascriptでそれを行うことができますか?
フィールド 12345 があり、最後の数字 5 を入力すると自動的にフォームを送信する必要があります...
どのようにjavascriptでそれを行うことができますか?
誰かがjqueryの結果を作成したのを見ましたが、これはプレーンなjavascriptの1つです
<input type="text" onkeyup="submitForm(this.value)">
function submitForm(str){
if(str.length=5){
document.forms["myform"].submit();
}
}
このソリューションでは、それに応じて 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();
}
});
$('.input').change(function() {
if ($(this).val().length >= 5) {
$('.Form').submit();
}
});
またはこれ:
$('input[type=text]').on('keyup', function(){
if($(this).val().length == 5){
alert('5 digit!');
//$('#myform').submit();
}
});
$('#input').keyup(function(){
var content = new String( $(this).val() );
if( content.length > 4 ){
/* do your stuff here */
}
});
$("#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 桁のみであることを確認するだけです。