我遇到了广播和复选框的Javascript表单验证问题。
我有一个外部.js脚本,我的所有功能规则都链接在html head部分。
我的规则如下所示:
function IsValid4DigitZip( str ) {
// Return immediately if an invalid value was passed in
if (str+"" == "undefined" || str+"" == "null" || str+"" == "")
return false;
var isValid = true;
str += "";
// Rules: zipstr must be 5 characters long, and can only contain numbers from
// 0 through 9
if (IsBlank(str) || (str.length != 4) || !IsInt(str, false))
isValid = false;
return isValid;
} // end IsValid4DigitZip
我将这个部分称为这个部分:
if (IsValid4DigitZip(document.orderbooks.querySelectorAll("[name=postcode]")[0].value)) {
} else {
alert("Invalid postcode: You entered 3 or less digits. Please enter a 4 digit postcode");
return false;
}
有些人可以使用我的示例帮助编写无线电和复选框的功能规则。
我只能使用Javascript。没有Jquery。
谢谢。
答案 0 :(得分:1)
第一个条件检查str
是否有truthy value,第二个条件检查其长度,最后一个检查所有字符是否为数字。
P.S。我假设你5
中的 Rules
是一个错字,你的意思是 4 。
function isValid4DigitZip(str) {
return str && str.length === 4 && /^\d+$/.test(str);
}
console.log(isValid4DigitZip('1234'));
console.log(isValid4DigitZip('124a'));
console.log(isValid4DigitZip('0000'));
console.log(isValid4DigitZip('12345'));
console.log(isValid4DigitZip('abcd'));
答案 1 :(得分:0)
为了检查输入是否插入字符串,我推荐正则表达式。 上面的代码很好,但如果你需要再做一次检查,它将导致代码重复。
这样做:
var zipCodeRegex = /^\d+$/
function isValid4DigitZip(str) {
return str && str.length === 4 && zipCodeRegex.test(str);
}
通过这种方式,它将更容易维护并且更易读。
P.S。 有一个很棒的网站来测试你的正则表达式条件:
使用它。