我有以下代码:
$("input[id^='Order_'], input[id^='Default_']")
.change(function (e) {
var type = $(this).attr('id').split('_')[0];
updateField('Menu', $(this), type);
});
The input with an id of 'Order_' has a type="text"
The input with an id of 'Default_' has a type="checkbox"
在我的updateField中,我遇到了一个问题:
function updateField(entity, obj, type) {
var val = obj.val();
var idArr = obj.attr("id");
var idTmp = idArr.split("_");
var id = idTmp[1];
var pkrk = $("span[id='refKey_" + id + "']").html();
问题是代码适用于文本,但不适用于复选框。如果选中或不选中该复选框,则它仍然返回true。有没有办法可以获得复选框是否被选中的值,并将字符串“true”或“false”放入变量val,同时仍然将正确的值放入val中,如果日期来自于Order_?
So if the value of Order_ field is 25 then val = "25"
So if the value of Default_ checkbox is true the val = "true"
So if the value of Default_ checkbox is false the val = "false"
答案 0 :(得分:2)
问题是复选框没有任何“值”。而不是在jQuery中使用val()
函数搜索属性“已检查”。
这可以这样做:
var checked = !!$("checkbox selector").attr("checked");
或使用jQuery选择器
var checked = $("checkbox selector").is(":checked");
因此,如果checkbox标签不包含“已检查”属性且与复选框的未选中状态相同,则attr()
函数将返回undefined。