使用jQuery获取文本或复选框的值并将其放入变量中

时间:2012-02-08 11:50:07

标签: javascript jquery

我有以下代码:

$("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"

1 个答案:

答案 0 :(得分:2)

问题是复选框没有任何“值”。而不是在jQuery中使用val()函数搜索属性“已检查”。 这可以这样做:

var checked = !!$("checkbox selector").attr("checked");

或使用jQuery选择器

var checked = $("checkbox selector").is(":checked");

因此,如果checkbox标签不包含“已检查”属性且与复选框的未选中状态相同,则attr()函数将返回undefined。