2013-10-10 2 views
0

양식 제출시 문제가 발생합니다. 텍스트 상자에 아무 것도 입력하지 않으면 정확한 오류가 나타나지만 라디오 버튼 응답에 유효한 항목이 있으면 점수를 선택한 후 '점수를 선택하십시오'와 같은 오류가 계속 표시됩니다.자바 스크립트 양식 제출 오류

내가 잘못 입력 한 것을 볼 수없는 것 같습니다.

모든

최고의 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을 참조하십시오.

관련 문제