【问题标题】:How to pass a value from the Jquery validation如何从 Jquery 验证中传递一个值
【发布时间】:2013-11-07 15:48:55
【问题描述】:

如何从 jquery 验证中传递一个值。我有一个名为 clubCardNumber 的输入框,它应该验证输入值的长度。如果长度等于 10,则该值传递给名为 else 的隐藏字段,如果其为 null,则对其进行验证,如果所有验证为真,则为空,则其为 clubCard。

这是我在 Javascript 上实现它的方式

 function validateClubCardNumber() {

    var varClubCardNumber = $('#clubCardNumber').val();     
    $('#phoneNumber').val("");
    var returnVal = true;

    if ((null == varClubCardNumber || '' == trim(varClubCardNumber)){
        return false;
    }
    if( varClubCardNumber.length < 10 ){
            return false;

    }else if( varClubCardNumber.length == 10 )  {
        //The Phone Number field should contains numbers only
        var pattern  = /^[0-9 -]*$/ ;
        var flag = pattern.test(trim(varClubCardNumber));
        if(flag == false){
            return false;
        }else{
            $('#phoneNumber').val(varClubCardNumber);
            returnVal = true;
        }
    }

    }
    return returnVal;
 }

HTML

<div >
   <label for="clubCardNumber" >Card or Phone Number:</label>
   <input id="clubCardNumber" name="clubCardNumber" type="text" placeholder="Card or Phone Number" value="" maxlength="20"/>
</div>
<input type="hidden" id="phoneNumber" name="phoneNumber" value=""/> 

【问题讨论】:

  • 这里是html部分&lt;div &gt; &lt;label for="clubCardNumber" &gt;Card or Phone Number:&lt;/label&gt; &lt;input id="clubCardNumber" name="clubCardNumber" type="text" placeholder="Card or Phone Number" value="" maxlength="20"/&gt; &lt;/div&gt; &lt;input type="hidden" id="phoneNumber" name="phoneNumber" value=""/&gt;感谢您的帮助。
  • 你想通过什么?如果您想将“redturnVal”传递给另一个函数,只需从它前面删除 var。

标签: jquery validation


【解决方案1】:

修改代码

if ((null == varClubCardNumber || '' == trim(varClubCardNumber)){
    return false;
}

if (!$.trim(varClubCardNumber){
    return false;
}

阅读$.trim()

完整代码

function validateClubCardNumber() {
    var varClubCardNumber = $.trim($('#clubCardNumber').val());
    $('#phoneNumber').val("");
    var returnVal = true;    
    if (varClubCardNumber || varClubCardNumber.length < 10){
        returnVal = false;
    }
    else if( varClubCardNumber.length == 10 )  {
        //The Phone Number field should contains numbers only
        var pattern  = /^[0-9-\s]*$/ ;
        var flag = pattern.test(varClubCardNumber);
        if(flag == false){
            returnVal = false;
        }else{
            $('#phoneNumber').val(varClubCardNumber);
        }
    }
    return returnVal;
}

【讨论】:

    【解决方案2】:

    看来你离得不远了。从 Rohan 的帖子和更多的清理中获取,这就是我想出的解决方案

    function validateClubCardNumber() {
      var CARD_NUMBER_REGEX = /^[\d-\ ]+$/;
      var varClubCardNumber = $.trim($('#clubCardNumber').val());
      $('#phoneNumber').val("");
      if( varClubCardNumber && 
         (varClubCardNumber.length === 10) &&
         CARD_NUMBER_REGEX.test(varClubCardNumber)) {
           $('#phoneNumber').val(varClubCardNumber);
           return true;
      }
      return false;
    }
    

    我注意到您需要检查验证(使用正则表达式)的唯一时间是长度是否正确,所以我尝试简单地代替 if elsif else 结构。

    【讨论】:

      【解决方案3】:

      我在想这是否可行

      $("#registrationForm").validate({
                  rules: {
                      clubCardNumber : {
                          required: {
                                function (element) {
                             var returnVal = true;    
          if (varClubCardNumber || varClubCardNumber.length < 10){
              returnVal = false;
          }
          else if( varClubCardNumber.length == 10 )  {
              //The Phone Number field should contains numbers only
              var pattern  = /^[0-9-\s]*$/ ;
              var flag = pattern.test(varClubCardNumber);
              if(flag == false){
                  returnVal = false;
              }else{
                  $('#phoneNumber').val(varClubCardNumber);
              }
          }
          return returnVal;}
                          },
      

      抱歉给大家带来了困惑。我想将我的 JS 验证放在所需的 JQ 验证验证上。

      【讨论】:

        猜你喜欢
        • 2018-12-14
        • 1970-01-01
        • 2015-08-31
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 2012-11-12
        • 2021-05-16
        • 1970-01-01
        相关资源
        最近更新 更多