我有一个字段 12345,我需要在输入最后一个数字 5 时自动提交表单...
如何用 javascript 做到这一点?
我看到有人创建了一个 jquery 结果,但这里是一个纯 javascript
<input type="text" onkeyup="submitForm(this.value)">
function submitForm(str){
if(str.length=5){
document.forms["myform"].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();
}
});
正则表达式在这里非常简单,只检查字符串是否正好是五位数字并且只有五位数字。
此解决方案假定您已相应设置了 maxlength 属性。它还使用“输入”事件,根据我的经验,它比 keypress、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();
}
});