<form>可以将单选按钮的<label>提交为VALUE吗?

时间:2017-05-16 16:10:12

标签: html html5 forms radio-button

我们目前对单选按钮使用以下语法:

<input type="radio" id="opt1" name="option" value="opt1" required/>
<label for="opt1">Description of Option One</label>
<input type="radio" id="opt2" name="option" value="opt2" required/>
<label for="opt2">Description of Option Two</label>

查询处理脚本接收字符串"opt1",然后需要将其转换为选项的全文描述。在PHP中,我得到:

 $_POST['option'] => "opt1"

我想保存该步骤,并将要提交的说明全文作为值:

 $_POST['option'] => "Description of Option One"

这可以单独使用HTML吗 - 不需要使用JavaScript重写黑客并且不使用复制 HTML中的描述文本?谢谢!

2 个答案:

答案 0 :(得分:2)

不幸的是没有。

如果您可以控制表单,最佳解决方案是使用值的说明:

<input type="radio" id="opt1" name="option" value="Description of Option One" required/>
<label for="opt1">Description of Option One</label>
<input type="radio" id="opt2" name="option" value="Description of Option Two" required/>
<label for="opt2">Description of Option Two</label>

如果您无法控制表单,那么javascript是您唯一的解决方案,您可以使用类似下面的功能(在onload事件内部进行页面或表单上的onsubmit事件:

function radioUpdate() {
  document.querySelectorAll('radio').forEach(function(input) {
    input.value = document.querySelector('label[for="' + input.id + '"]').text();
  });
};

答案 1 :(得分:0)

不,它不能。

首先考虑从服务器端代码生成HTML。您可以编写一个PHP函数,将标签/值作为单个参数。