单击事件期间更改的复选框值未被表单数据拾取
Changed checkbox value during click event not picked up by form data
我有一个 "sign up for email updates" 复选框,默认选中值为 "Yes"。如果不勾选,需要设置为"No"。这不是一个完美的解决方案,但这些是需要在提交表单时提交给数据库的值。
HTML:
<input name="emailSignUpCheckbox" id="emailSignUpCheckbox" type="checkbox" value="Yes" onclick="updateSignUpCheckbox()">Sign me up!
Javascript:
var emailSignUpCheckbox = document.getElementById('emailSignUpCheckbox');
function updateSignUpCheckbox(){
if(emailSignUpCheckbox.checked) {
emailSignUpCheckbox.value = "Yes";
}
else {
emailSignUpCheckbox.value = "No";
}
}
复选框的值每次都在更改,我已通过查看 DOM 或在控制台中记录该值来确认。当以选中状态提交时(默认),"Yes" 的值由表单发布到数据库。
但是,如果手动取消选中,复选框的值不会由表单发送到数据库,而是发送一个空白值。
非常感谢任何关于我可能做错的建议!
我希望这可以帮助你,another answer,只提交了 "on" 值,一种解决方案是考虑如果复选框的值不在提交中,则意味着它的值为 "of".
我有一个 "sign up for email updates" 复选框,默认选中值为 "Yes"。如果不勾选,需要设置为"No"。这不是一个完美的解决方案,但这些是需要在提交表单时提交给数据库的值。
HTML:
<input name="emailSignUpCheckbox" id="emailSignUpCheckbox" type="checkbox" value="Yes" onclick="updateSignUpCheckbox()">Sign me up!
Javascript:
var emailSignUpCheckbox = document.getElementById('emailSignUpCheckbox');
function updateSignUpCheckbox(){
if(emailSignUpCheckbox.checked) {
emailSignUpCheckbox.value = "Yes";
}
else {
emailSignUpCheckbox.value = "No";
}
}
复选框的值每次都在更改,我已通过查看 DOM 或在控制台中记录该值来确认。当以选中状态提交时(默认),"Yes" 的值由表单发布到数据库。
但是,如果手动取消选中,复选框的值不会由表单发送到数据库,而是发送一个空白值。
非常感谢任何关于我可能做错的建议!
我希望这可以帮助你,another answer,只提交了 "on" 值,一种解决方案是考虑如果复选框的值不在提交中,则意味着它的值为 "of".