如何从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=""/>
答案 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验证所需的验证上。