Jquery中的Data-Bind属性值

时间:2014-05-28 11:08:54

标签: jquery html knockout.js

我有一个从数据库中绑定的复选框列表,复选框的ID在data-bind属性的帮助下被绑定,当用户点击提交按钮时,我正在遍历复选框列表并检查复选框是否正确没有选中,如果选中,那么我想获得复选框的ID。

<input type="checkbox"  class='roles' name='roles' data-bind="attr: { value: Id }" />

这是我试过的方式

  if ($(this).is(':checkbox')) {
  if (this.checked)
  {
   var input = $(this);
   if ($(input).data().bind) {
    alert($(this).data('bind'));
  }
  }
 }

我实际上想要获得此值data-bind="attr: { value: Id }

但是在alertbox中我收到消息为data-bind =“attr:{value:Id},我想要获得1,2等等

3 个答案:

答案 0 :(得分:3)

  

但是在alertbox中我收到消息为data-bind =“attr:{value:Id},我想要获得1,2等等

是的,data-bind的值没有改变。如果您想要value属性的值,则需要改为:

alert(input.val());

Live example

var obj = {Id: "foo"};

ko.applyBindings(obj, document.body);
display("data-bind: " + $("input").data().bind);
display("value: " + $("input").val());

附注:Knockout具有value绑定,用于设置表单控件的值:

<input data-bind="value: Id">

答案 1 :(得分:2)

您获取数据属性的语法不正确。你需要使用:

$(this).data('bind')

<强> Refer to .data() Documentation

答案 2 :(得分:2)

你可以这样做:

var value = $(input).data("bind");

或者这样:

var value =$(input).attr("data-bind");