如何禁用单选按钮1单击后

时间:2014-11-15 12:32:47

标签: javascript html

JS:

   function checkValue(option) {
        if (option == "4") {

            alert("Correct");

            var pop = parseInt(window.name++);
            alert(pop);
            window.location="q2.html";
        }
        else {
            alert("False, Option (4) is the Correct Answer.");
            window.location="q2.html";
        }
    }

Html:

<html>

 <input type="radio" name="option_1" value="1" onclick="checkValue(this.value);" /> Hyper Text Markup Languages <br /> <br />
    <input type="radio" name="option_2" value="2" onclick="checkValue(this.value);" /> Highest Text Markup Language <br /> <br />
    <input type="radio" name="option_3" value="3" onclick="checkValue(this.value);" /> Hyper Total Markup Language <br /> <br />
   <input type="radio" name="option_4" value="4" onclick="checkValue(this.value);" /> Hyper Text Markup Language <br /> <br />

</html>

2 个答案:

答案 0 :(得分:1)

首先,我要清理一下HTML代码...我假设四个单选按钮都是一个问题的可能答案,在这种情况下它们应该都具有相同的名称(而不是值)所以你只能选择一个答案;然后在脚本中,我需要使用的信息不仅仅是已选中答案的值,因此我不会将this.value发送给该函数,而是发送this

<input type="radio" name="question_1" value="option_1" onclick="checkValue(this);" /> Hyper Text Markup Languages <br /> <br />
<input type="radio" name="question_1" value="option_2" onclick="checkValue(this);" /> Highest Text Markup Language <br /> <br />
<input type="radio" name="question_1" value="option_3" onclick="checkValue(this);" /> Hyper Total Markup Language <br /> <br />
<input type="radio" name="question_1" value="option_4" onclick="checkValue(this);" /> Hyper Text Markup Language <br /> <br />

在脚本中,要在点击单选按钮后禁用单选按钮,我会添加一个功能,该功能通过每个具有相同名称的单选按钮(如上所述)作为那个按钮。单击并禁用它:

var radiobuttons = document.getElementsByName(option.name);
for(i = 0; i < radiobuttons.length; i++) {
    radiobuttons[i].disabled = true;
}

然后,当然,警告让访问者知道他们是否得到了正确答案:

if (option.value == "option_4") {
    alert("Correct");
} else {
    alert("False, Option (4) is the Correct Answer.");
}

这是一个小提琴:http://jsfiddle.net/Niffler/nyqk6gga/

(我假设您不想使用jQuery;否则会有更好看的方法来实现这一点......)

答案 1 :(得分:0)

$(document).delegate(".rndmyradio","click",function () {
    $(this).hide();
  
  //if you want values of selected
    alert($(this).val());

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input class="rndmyradio" type="radio" name="option_1" value="1"  /> <label>Hyper Text Markup Languages </label><br /> <br /> 
2. <input class="rndmyradio" type="radio" name="option_2" value="2"  /> Highest Text Markup Language <br /> <br /> 
3. <input class="rndmyradio" type="radio" name="option_3" value="3"  /> Hyper Total Markup Language <br /> <br />
4. <input class="rndmyradio" type="radio" name="option_4" value="4" /> Hyper Text Markup Language <br /> <br />