簡體   English   中英

單選按鈕驗證不起作用

[英]Radio button Validation not working

我需要驗證單選按鈕,我正在努力尋找問題的來源。

基本上,當我提交時會發生什么,它不會驗證表單及其所有字段。 我知道是這個函數導致了問題,因為當它從 .js 文件中取出時,表單會正確驗證。

下面是我的 HTML 文件中包含單選按鈕的部分

<tr>
    <th align="left">Driver Required: </th>
    <td>
        <input type="radio" name="Driver" value="Yes" id="radio_error"> Yes
    </td>
 </tr>
 <tr>
 <td><br></td>
 <td>
     <input type="radio" name="Driver" value="No" id="radio_error"> No
 </td>
 </tr>
 <tr><th><br></th></tr>
     <tr>
         <th align="left">Insurance: </th>
         <td>
             <input type="radio" name="Insurance" value="None" id="radio_error"> None
          </td>
  </tr>
  <tr>
      <td><br></td>
      <td>
          <input type="radio" name="Insurance" value="CDW" id="radio_error"> Collision Damage Waiver
          <br>
          <input type="radio" name="Insurance" value="LI" id="radio_error"> Liability Insurance
          <br>
          <input type="radio" name="Insurance" value="PAI" id="radio_error"> Personal Accident Insurance
          <br>
          <input type="radio" name="Insurance" value="PEC" id="radio_error"> Personal Effects Coverage
      </td>
  </tr>

以下代碼行來自 .js 文件。 我有一個驗證功能,我確定這不是問題。

function checkDriverRadio()
{
    var yesOrNo = "";
    var len = document.ClientForm.Drvier.length;
    var i;

    for (i = 0; i < len; i++) 
    {
        if (document.ClientForm.Drvier[i].checked)
        {
            yesOrNo = document.ClientForm.Driver[i].value;
            break;
        }
    }

    if (!document.ClientForm.Driver.checked)
    {
        document.getElementById("radio_error").innerHTML = "No option selected";
        return false;
    }
    else
    {
        document.getElementById("radio_error").innerHTML = "";
        return true;
    }
}

function checkInsuranceRadio()
{
    var option = "";
    var len = document.ClientForm.Insurance.length;
    var i;

    for (i = 0; i < len; i++) 
    {
        if (document.ClientForm.Insurance[i].checked)
        {
            option = document.ClientForm.Insurance[i].value;
            break;
        }
    }

    if (!document.ClientForm.Insurance.checked)
    {
        document.getElementById("radio_error").innerHTML = "No option selected";
        return false;
    }
    else
    {
        document.getElementById("radio_error").innerHTML = "";
        return true;
    }
}

我認為有一個拼寫錯誤...

if (document.ClientForm.Drvier[i].checked)
    {
        yesOrNo = document.ClientForm.Driver[i].value;
        break;

....您的文件名是 Driver 而不是 Drvier。 我希望這有幫助。

我意識到您所有的單選按鈕都具有相同的 Id,單選按鈕按您所做的name="someName"分組,並且正如其他答案所述,您有一些印刷錯誤需要查看。 我在這個小提琴中創建了一個簡單的驗證,如果有幫助,請檢查一下。

https://jsfiddle.net/mr_odoom/17xwdL79/

暫無
暫無

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

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