[英]Javascript form validation. Radio buttons and checkboxes. How to validate?
我在單選框和復選框的Javascript表單驗證中遇到問題。
我有一個外部.js腳本,其所有函數規則都鏈接在html頭部分中。
我的規則如下所示:
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。
謝謝。
第一個條件檢查str
是否具有真值 ,第二個條件檢查其長度,最后一個條件檢查所有字符是否均為數字。
附言:我假設您的Rules
的5
是錯別字,而您的意思是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'));
為了檢查輸入是否將其插入字符串,我建議使用正則表達式。 上面的代碼不錯,但是如果您需要再次檢查,則會導致代碼重復。
像這樣做:
var zipCodeRegex = /^\d+$/
function isValid4DigitZip(str) {
return str && str.length === 4 && zipCodeRegex.test(str);
}
這樣,將更易於維護並且可讀性更高。
PS:有一個很棒的網站可以測試您的正則表達式條件:
用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.