为什么input [type = radio]的默认值是“ on”而不是“ on”?

时间:2019-01-24 08:40:14

标签: javascript html

仅显示代码:

function show() {
  console.log(document.querySelector('input[type=radio]').value) // 'on'
}
<input type="radio">

<button onclick="show()">Show value</button>

4 个答案:

答案 0 :(得分:6)

这是单选和复选框输入的默认值。这并不意味着单选按钮当前处于“打开”状态。您想要的属性已选中。

<input type="radio" value="Another Value">
<script>
  console.log(document.querySelector('input[type=radio]').checked)
  console.log(document.querySelector('input[type=radio]').value) // 'on'
</script>

答案 1 :(得分:2)

默认情况下,单选按钮(如按钮)的值为on。您需要通过为标签赋予value属性,并且很可能为name属性来指定它。例如

<input type="radio" name="category" value="1">

name指定此按钮属于哪个组,value指定所选按钮的含义,您可以阅读更多here

答案 2 :(得分:2)

MDN page for the <input> element简单地说:

  

复选框和单选按钮的默认containers: - name: apache image: apache:2.4 lifecycle: postStart: exec: command: ["chown", "www-data:www-data", "/var/www/html/app/etc/env.php"] value

对于复选框,此默认设置最有意义:如果您指定名为on的复选框,然后提交带有该复选框的表单,则会向服务器发送字符串foo。这比让它发送foo=on更方便,因此空字符串不是方便的默认值。

由于单选按钮本质上是复选框的扩展,所以此默认设置很可能在第一次设计其行为时同时应用于两者。

答案 3 :(得分:0)

因为无线电输入的上下文是输入,所以应该始终有一个选定的值。

与上下文中的复选框相反,您可以选择不输入值。

请使用必要的内容,尽管可以覆盖这些默认值。