【问题标题】:Automatic submit after type the last digit输入最后一位后自动提交
【发布时间】:2012-09-13 14:35:46
【问题描述】:

我有一个字段 12345,我需要在输入最后一个数字 5 时自动提交表单...

如何用 javascript 做到这一点?

【问题讨论】:

  • 数字必须是 12345 还是任意 5 位数字?
  • 5位为例,真实字段为99999-999
  • 糟糕的设计...如果用户在最后一个数字上打错了怎么办?你会处理错误的数据。
  • 我正在使用面罩和它的巴西邮政编码

标签: javascript jquery forms field


【解决方案1】:

我看到有人创建了一个 jquery 结果,但这里是一个纯 javascript

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

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

【讨论】:

  • 应该是keyup,因为大多数浏览器在更改输入值之前都会触发javascript
【解决方案2】:

或者这个:

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

【讨论】:

    【解决方案3】:
     $('.input').change(function() {
            if ($(this).val().length >= 5) {
                $('.Form').submit();
            }
        });
    

    【讨论】:

      【解决方案4】:
      $('#input').keyup(function(){
          var content = new String( $(this).val() );
          if( content.length > 4 ){
              /* do your stuff here */
          }
      });
      

      【讨论】:

        【解决方案5】:

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

        这里的正则表达式非常简单,只检查字符串是否正好是五位数字并且只有五位数字。

        【讨论】:

          【解决方案6】:

          此解决方案假定您已相应设置了 maxlength 属性。它还使用 'input' 事件,根据我的经验,它比 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();
              }
          });​
          

          Fiddle

          【讨论】:

            猜你喜欢
            • 2016-03-13
            • 1970-01-01
            • 1970-01-01
            • 2018-11-17
            • 1970-01-01
            • 2013-01-13
            • 1970-01-01
            • 2023-03-27
            • 1970-01-01
            相关资源
            最近更新 更多