如何从Jquery验证中传递值

时间:2013-11-07 15:48:56

标签: jquery validation

如何从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=""/> 

3 个答案:

答案 0 :(得分:0)

更改代码

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;
}

答案 1 :(得分:0)

看起来你并不遥远。从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结构。

答案 2 :(得分:0)

我在想这是否可行

$("#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验证所需的验证上。