在我的表单中,我有一系列复选框,供用户同意某些事情。我不需要他们检查所有或任何特定的,但我需要电子邮件的收件人轻松告诉哪些未被检查(他们不同意的条款)
我尝试添加一个具有相同名称的隐藏复选框,但是当选中可见复选框时,电子邮件会收到两个回复,从而导致电子邮件混乱。
单选按钮不是答案,因为我只是希望用户看到一个复选框并检查它(或不是!)
fyi,php不是一个可用的选项。我更喜欢javascript或jquery。
我对javascript不太好但是我尝试了以下操作并且它不起作用(当检查可见的时它发送了两个响应):
<input type="hidden" name="Name1" id="Hidden1" value="NOT ANSWERED" checked />
<input type="checkbox" name="Name1" id="Visible1" value="Yes" onchange="document.getElementById('Hidden1').checked = false;" />
答案 0 :(得分:2)
以下是如何使用data
属性为未经检查的输入获取默认值的示例。
HTML
<form id="form">
<input type="checkbox" name="terms_1" data-unchecked-value="not-agree" value="agree" checked />
<input type="checkbox" name="terms_2" data-unchecked-value="not-agree" value="agree" />
<button type="submit">
submit
</button>
</form>
JS
var form = document.querySelector('#form')
function getValue(node) {
return node.checked ? node.value : node.dataset.uncheckedValue
}
form.addEventListener('submit', function(event) {
event.preventDefault();
var terms1 = getValue(this.terms_1)
var terms2 = getValue(this.terms_2)
console.log(terms1, terms2)
})
JSFiddle演示:https://jsfiddle.net/Lo6g7so5/1/