2013-10-10 6 views
0

У меня проблемы с моим кодом при отправке в форму. Если в текстовое поле ничего не введено, появляется правильная ошибка, но когда есть допустимые записи для ответов «Радиокамера», она по-прежнему отображает сообщение «Пожалуйста, выберите оценку» и т. П., Когда есть выбранная оценка.Ошибка отправки формы Javascript

Возможно, я не вижу, что я ввел неправильно.

Все лучшее

CP

<form name="promoForm2" method=post enctype=multipart/form-data action=reactsubmit.php onSubmit="return validateForm();"> 
<ul class=mainForm id="mainForm_1"> 

<SCRIPT type=text/javascript> 

function validateForm() 
{ 
    var x=document.forms["promoForm2"]["DJcomment"].value; 
    if (x==null || x=="") 
    { 
     alert("Please enter a comment."); 
     return false; 
    } 

    var x=document.forms["promoForm2"]["score"].value; 
    if (x==null || x=="") 
    { 
     alert("Please enter a score for the track."); 
     return false; 
    } 

    var x=document.forms["promoForm2"]["FavMix"].value; 
    if (x==null || x=="") 
    { 
     alert("Please select your favourite mix."); 
     return false; 
    } 
} 
</SCRIPT> 

<table border='0'><tr><td>Support: </td><td><input type="radio" name="DJsupport" value="Yes">Yes<input type="radio" name="DJsupport" value="No">No</td></tr> 

<tr><td>Favourite Mix: </td><td><input type="radio" name="FavMix" value="Enemy (Original Mix)">Enemy (Original Mix)</td></tr> 

<tr><td></td><td><input type="radio" name="FavMix" value="Enemy (Original Mix)">Enemy (Original Mix)</td></tr> 

<tr><td></td></tr><tr><td>Score: </td><td><input type="radio" name="score" value="1">1<input type="radio" name="score" value="2">2<input type="radio" name="score" value="3">3<input type="radio" name="score" value="4">4<input type="radio" name="score" value="5">5<input type="radio" name="score" value="6">6<input type="radio" name="score" value="7">7<input type="radio" name="score" value="8">8<input type="radio" name="score" value="9">9<input type="radio" name="score" value="10">10<td></tr><tr><td>Comment: (Required) </td><td><textarea name="DJcomment" rows="5" cols="40"></textarea></td></tr> 

<tr><td></td><td><p class="mainForm"><input id="saveForm" class="mainForm" type="submit" value="Submit Reaction" /></td></tr></li></form> 

</html> 

ответ

0

Чтобы проверить ценность ваших переключателей, проверьте их свойства checked.

Вам нужно будет проверить все радиокнопки определенного имени, чтобы определить, был ли он выбран для своей группы.

function checkRadios(group) { 
    for (var i = 0; i < group.length; i++) { 
     if (group[i].checked) { 
      return true; 
     } 
    } 

    return false; 
} 

function validateForm() { 
    var x=document.forms["promoForm2"]["DJcomment"].value; 

    if (x == null || x == "") { 
     alert("Please enter a comment."); 
     return false; 
    } 

    if (!checkRadios(document.forms["promoForm2"]["score"])) { 
     alert("Please enter a score for the track."); 
     return false; 
    } 

    if (!checkRadios(document.forms["promoForm2"]["FavMix"])) { 
     alert("Please select your favourite mix."); 
     return false; 
    } 
} 

Живая демонстрация here.

+0

Спасибо, что работает отлично! Мне пришлось отредактировать его, чтобы он соответствовал последнему значению о том, поддерживал ли он его, но спасибо! –

0

document.forms["promoForm2"]["score"] представляет собой массив элементов ввода, которые вам нужно будет перебрать, чтобы проверить, если какой-либо один флажок.

var x=document.forms["promoForm2"]["FavMix"]; 
var pass=false; 
for(var i=0;i<x.length;i++){ 
    if (x[i].checked==true) { 
     pass=true; 
     break; 
    } 
} 
if(pass==false){ 
    alert("Please select your favourite mix."); 
    return false; 
} 

Просмотреть мои JSFiddle.

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