单<FORM>选按钮可以作为<LABEL>值提交吗?



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

<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中的描述文本?谢谢!

不幸的是不是。

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

<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();
  });
};

不,它不能。

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

最新更新