所以坦率地说,我不确定你以前在哪里看到过这种功能设置。您的代码按原样可以简化为:
$(function() { // on DOM ready (when the DOM is finished loading)
$('#optIn').click(function() { // when the checkbox is clicked
var checked = $('#optIn').is(':checked'); // check the state
$('#optIn').val(checked ? "Yes" : "No"); // set the value
});
$('#optIn').triggerHandler("click"); // initialize the value
});
但是value
,复选框的 永远不会显示在屏幕上。您可能需要使用值“是”或“否”更新单独的字段,例如:
<input type="checkbox" id="optIn" />
<span id="optInLabel"/>No</span>
和脚本:
$(function() { // on DOM ready (when the DOM is finished loading)
$('#optIn').click(function() {
optIn(this);
});
optIn($('#optIn')[0]);
});
function optIn(el) {
var checked = $(el).is(':checked'); // check the state
$('#optInLabel').html(checked ? "Yes" : "No"); // set the value
}
编辑:工作 jsFiddle
如果您需要检查是否在服务器端提交表单后选中该框,那么您还可以使用值“是”或“否”更新隐藏的输入字段并忽略提交的复选框元素值(jaredhoyt
如前所述在他的回答中)。