重置单选按钮

时间:2014-03-12 10:41:33

标签: javascript html radio-button

这是一个包含我的代码的小提琴 - http://jsfiddle.net/jamiepollard28/sDLV4/8/

我正在尝试让代码重置单选按钮,只有当用户在单选按钮的验证警告框中单击取消时才会重置。

当您单击包含所需数据的子设备并选择了一个单选按钮时,将出现一个警告框确认或拒绝该选项,当我在该警告框上单击取消时,我希望单选按钮选择重置。

以下是我的代码。

<html>
<head>
<title>Exam entry</title>
<script language="javascript" type="text/javascript">
window.onload=function(){
window.validateForm=function() {
    var result = true;
    var msg = "";
    var focusname="";
    if (document.ExamEntry.name.value == "") {
        msg += "You must enter your name \n";
        focusname="name";
        //document.ExamEntry.name.focus();
        document.getElementById('name1').style.color = "red";
        //result = false;
    }
    if (document.ExamEntry.subject.value == "") {
        msg += "You must enter the subject \n";
       // document.ExamEntry.subject.focus();
        if (focusname=="")
        {
        focusname="subject";
        }
        document.getElementById('subject1').style.color = "red";
        //result = false;
    }
    var Number = document.ExamEntry.Exam_Number.value
    if (Number == "") {
        msg += "You must enter the exam Number \n";
        //document.ExamEntry.Exam_Number.focus();
        if (focusname=="")
        {
        focusname="Exam_Number";
        }
        document.getElementById('Exam_Number1').style.color = "red";
        //result = false;
    }else if (Number.length != 4) {
        msg += "You must enter at least Four Numbers in the Exam Number \n";
         if (focusname=="")
        {
        focusname="Exam_Number";
        }
        //document.ExamEntry.Exam_Number.focus();
        document.getElementById('Exam_Number1').style.color = "red";
        //result = false;
    }
else if (isNaN(Number)) {
        msg += "You must enter at least four numeric characters in the Exam Number feild \n";
     if (focusname=="")
        {
        focusname="Exam_Number";
        }   
    // document.ExamEntry.Exam_Number.focus();
        document.getElementById('Exam_Number1').style.color = "red";
        //result = false;
    }
    var valchecked = '';
    var len = document.getElementsByName('examtype').length;

    for (i = 0; i < len; i++) {

if ( document.ExamEntry.examtype[i].checked ) {

valchecked = document.ExamEntry.examtype[i].value;
 break;

}

}
    if (valchecked == '') {
        msg += "Select Exam Type";
        document.getElementById('Exam_Type').style.color = "red";
         if (focusname=="")
        {
        focusname="examtype_GCSE";
        }

    } 

    if (msg != ""){
        alert(msg)
        document.getElementById(focusname).focus();
        return false;
    }else{
        return confirm('You have chosen ' + valchecked + ' is this correct?');
    }

}
}//]]>  

</script>


</head>
<body>
  <h1>Exam Entry Form</h1>
<form name="ExamEntry" method="post" action="success.html">
<table width="50%" border="0">
<tr>
<td id="name1">Name</td>
<td><input type="text" name="name"  id="name" /></td>
</tr>
<tr>
<td id="subject1">Subject</td>
<td><input type="text" name="subject" id="subject"/></td>
</tr>
<tr>
<td id="Exam_Number1">Exam Number</td>
<td><input type="text" name="Exam_Number" id="Exam_Number" ><font size="3">(Maximum characters: 4)</font> </td>
</tr>
<tr>

<table><form action="">
<td id="Exam_Type">Exam Type</td>
<tr><td><input type="radio" id="examtype_GCSE" name="examtype" value="GCSE" /> : GCSE<br /></tr>
<tr><td><input type="radio" id="examtype_AS" name="examtype" value="AS"/> : AS<br /></tr>
<tr><td><input type="radio" id="examtype_A2" name="examtype" value="A2" /> : A2<br /></tr>
<tr><td><input type="submit" name="Submit" value="Submit" onclick="return validateForm();" /></td>
<td><input type="reset" name="Reset" value="Reset" /></td>
</tr>
</table>
</form>

</body>


</html>

2 个答案:

答案 0 :(得分:1)

您只是返回用户选择,您需要先检查它,如果是,则返回true表示提交,否则重置无线电并返回false,如下所示:FIDDLE

    var ch=  confirm('You have chosen ' + valchecked + ' is this correct?');
    if(!ch){
        document.getElementById('examtype_'+valchecked).checked= false;
        return false; }
    else 
        return true;
   }

答案 1 :(得分:0)

使用if循环可以解决问题

尝试以下代码

if(confirm('You have chosen ' + valchecked + ' is this correct?')){
            return true;
        }
        else{           
            document.getElementById('examtype_'+valchecked).checked= false;         
            return false;
        }