几个月来我们一直使用相同的 HTML 和 PHP。突然之间,Safari 似乎改变了它提交单选按钮的方式。在提交时,我们正在运行一个 JS 函数来验证所有输入。
form.addEventListener('submit', function(event) {
event.preventDefault();
form.querySelectorAll('input.ignore[type="radio"]').forEach( /** @param {HTMLInputElement} radio */ function(radio) {
console.log(radio.disabled); // OUTPUT: false
radio.disabled = true;
console.log(radio.disabled); // OUTPUT: true
_func_setHiddenFIeld(); // we set the value of the checked Radio button as value of the hidden input
});
});
<form action="/form/debug.php" method="POST" target="_blank">
<input type="hidden" class="" name="TEST1" value="">
<label for="ID1">
<input class="form-radio ignore" required="required" data-field="TEST1" type="radio" id="ID1" name="ignore_TEST1" value="one">
one
</label>
<label for="ID2">
<input class="form-radio ignore" required="required" data-field="TEST1" type="radio" id="ID2" name="ignore_TEST1" value="two">
two
</label>
</form>
所有浏览器(Edge/Firefox/Chrome/Opera)只发布
name="TEST1"
这个字段。除了 Safari,Safari Posts 有两个字段
name="TEST1"
加上选中的单选按钮 name="ignore_TEST1"
或 name="ignore_TEST2"
.
有什么改变吗?