1

我是一个 DOM/javascript 新手,试图让我的基础知识正确。我只是想观察单选按钮在单击时的行为。这是我的代码。

HTML

    <script src="tmp.js"></script>
    <input type="radio" id="inp1" name="same" onclick="show();"/>
    <input type="radio" id="inp2" name="same" onclick="show();"/>

JS (tmp.js)

   function show() {
       alert(document.getElementById("inp1").value + " " + document.getElementById("inp2").value);
   }

让我感到困惑的是,在运行警报框时,单击任一按钮时都会显示“on on”。不应该是“开关”还是“关开”?

4

4 回答 4

3

不,不应该。该值是您在属性中指定的任何值(如果您未能提供单选按钮value,则默认为单选按钮)。'on'

由于只有选中的单选按钮才能成功并发送到服务器,因此不需要更改值(提交表单时不会包含数据)。

选中状态存储在checked属性中,您可以使用 JavaScript 中的状态来确定当前选中的单选按钮。

于 2013-08-08T11:55:54.340 回答
1

好像你想要得到的是checkedproperty ,看看:

   function show() {
       alert( document.getElementById("inp1").checked + " " + 
              document.getElementById("inp2").checked);
   }

工作示例:http: //jsfiddle.net/w7vGL/

于 2013-08-08T11:55:43.100 回答
0

您应该使用 checked 属性,该值仅确定检查时内部的内容。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<script type="text/javascript">
    function show() {
        alert(document.getElementById("inp1").checked + " " + document.getElementById("inp2").checked);
    }
</script>
</head>
<body>
<input type="radio" id="inp1" name="same" onclick="show();"/>
<input type="radio" id="inp2" name="same" onclick="show();"/>
</body>
</html>
于 2013-08-08T11:58:35.920 回答
0

改为使用checked,但请记住,它会给您一个布尔值,因此以下代码将满足您的需求:

function show() {
   alert(document.getElementById("inp1").checked ? 'on' : 'off'
 + " " + document.getElementById("inp2").checked ? 'on' : 'off'
   );
}
于 2013-08-08T12:02:13.613 回答