簡體   English   中英

JavaScript表單驗證。 單選按鈕和復選框。 如何驗證?

[英]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是否具有真值 ,第二個條件檢查其長度,最后一個條件檢查所有字符是否均為數字。

附言:我假設您的Rules5是錯別字,而您的意思是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:有一個很棒的網站可以測試您的正則表達式條件:

http://rubular.com/

用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM