在做magento的中文网站开发中,在新增收货地址或者使用新地址结算里经常碰到一个问题,就是手机号或者电话必填。这里我把magento原生的validation给干掉了,使用的jquery validation。
jquery验证必填的格式如下,以手机号码必填,电话号码必填为例
<!-- lang: js -->
rules: {
'billing[mobile]': {
required: true
},
'billing[telephone_number]': {
required: true
},
},
注意这里的billing[mobile],billing[telephone_number]是input框的name属性,刚开始使用jquery validation经常在这里犯错,那么新的问题来了,怎么验证手机号或者电话必填,填了一个即可,jquery validation似乎不支持类似这种xor(异或)判断
谷歌了一把,搜jquery validation xor,参考文章链接在本文最后面,最终代码如下
<!-- lang: js -->
rules: {
'billing[mobile]': {
required: function(element) {
return $("#telephone_number").val() == '';
}
},
'billing[telephone_number]': {
required: function(element) {
return $("#mobile").val() == '';
}
}
},
messages: {
'billing[mobile]': {
required: "手机或电话号码必填",
},
'billing[telephone_number]': {
required: "手机或电话号码必填",
}
},
稍微解释一下,telephone number值为空里mobile必填,同理mobile为空时,telephone number必填。原文里面是用的$("#mobile").is(':empty');我这里作了一点点修改
参考:jQuery Validation - Two fields, only required to fill in one