2016-09-11 4 views
-3

Мне нужно проверить радиокнопки, и я изо всех сил пытаюсь найти, откуда эта проблема.Радио-валидация Валидация не работает

В принципе, что происходит, когда я отправляю, он не подтверждает форму и все ее поля. Я знаю, что эта функция вызывает проблему, потому что когда она вынимается из файла .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; 
    } 
} 
+0

Что с document.ClientForm.Drvier.length; ? – John

+0

Мне нужно будет увидеть больше ядро, чтобы помочь вам – John

+0

@ Джона, это немного хлопот, чтобы иметь полный файл здесь, потому что отступы проблемы. Возможно, я мог бы связать файл onedrive или dropbox. –

ответ

0

Я думаю, что есть ошибка опечатка ...

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

.... Ваше имя файла драйвера не Drvier. Надеюсь, это поможет.

0

Я понимаю, что все ваши переключатели имеют одинаковые идентификаторы, кнопки радиосвязи сгруппированы по name="someName", которые вы сделали, и, как уже упоминалось в других ответах, у вас есть опечатки, которые вам нужно посмотреть. Я создал простую проверку в этой скрипке, любезно проверяю ее, если это помогает.

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

Смежные вопросы