【发布时间】:2013-01-07 09:37:39
【问题描述】:
我在互联网上看到很多人在 stackoverflow 上,我的同事在他们的复选框中使用的值不是 1 或 0(例如 <input type='checkbox' value='check'/>),但我的想法是基本上一个复选框将始终是肯定的/没有回答。
目前我使用我编写的 jQuery 脚本来标准化我的应用程序,如下所示:
;(function($){
$(document).ready(function() {
var selector = 'input[type="checkbox"]';
var c = 'checked';
$.each($(selector),function(){
var $el,value,attr;
$el = $(this);
value = $el.val();
attr = $el.attr(c);
if(value == 1 || typeof(attr) !== 'undefined')
{
$el.attr(c,c);
$el.prop(c,true);
$el.val(1);
}
else{
$el.removeAttr(c);
$el.prop(c,false);
$el.val(0);
}
});
$(selector).change(function(e){
var $el, checked = null;
$el = $(this);
checked = $el.prop(c);
if (checked) {
$el.attr(c,c);
$el.val(1);
} else {
$el.removeAttr(c);
$el.val(0);
}
});
});
})(jQuery);
这样我就可以处理以下任何一种情况:
<input type='checkbox' value='1'/>
<input type='checkbox' checked/>
<input type='checkbox' checked='checked'/>
<input type='checkbox' value='1' disabled/>
<input type='checkbox' checked disabled/>
<input type='checkbox' checked='checked' disabled/>
<input type='checkbox' value='0'/>
<input type='checkbox'/>
<input type='checkbox' value='0' disabled/>
<input type='checkbox' disabled/>
但它不考虑任何不是 0 或 1 或具有“已选中”属性的复选框的值。
我的问题是:是否有使用非 0/null 或 1 值的好用例(尤其是在使用关系数据库时)?
【问题讨论】:
-
"select all that apply" [ ] yes [ ] no [ ] file not found。仅仅因为你想不出任何非y/n场景并不意味着它们不存在。 -
@MarcB 为此,我将使用在相关表上创建 3 列,并根据是否检查它在每个列中插入一个二进制值。如果选项数量不定,我会使用联结表。
-
还要考虑 NULL 可以用于复选框行为。
标签: php jquery html mysql checkbox