1

ノックアウトで隠しフィールドの値にアクセスしたい。
これが私のhtmlコードです

<td>
                        <input type="checkbox" data-bind="checked: status, disable: status, click: $root.UpdateStatus" />
                        <input id="hdnGoalId" type="hidden" data-bind="value: goalId" />
                    </td>

これは私のJavaScriptコードです

var WebmailViewModel = function() {

 self.UpdateNote = function () {
    $.ajax({
        type: "POST",
        url: 'SinglePageApp.aspx/UpdateNote',
        data: "{goalId: '" + self.goalId + "'}",
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            alert(result.d);
        }
    });
};
};ko.applyBindings(new WebmailViewModel());

UpdateNote では、選択した goalId を渡したいと思います。アドバイスをお願いします。

4

2 に答える 2

2

考えられる問題が2つあります

  1. でビューにバインドしているため、goalIddata-bind="value: goalId"は監視可能として定義する必要があります。
  2. GoalIdの値を取得するには、関数として呼び出す必要があります(監視可能であるため)。

更新されたビューモデルを参照してください。

var WebmailViewModel = function() {
    var self = this;
    self.goalId = ko.observable(10); // where 10 is whatever value goalId should be
    self.UpdateNote = function() {
        $.ajax({
            type: "POST",
            url: 'SinglePageApp.aspx/UpdateNote',
            data: "{goalId: '" + self.goalId() + "'}",
            contentType: "application/json; charset=utf-8",
            success: function(result) {
                alert(result.d);
            }
        });
    };
};
于 2012-10-08T10:49:27.480 に答える
0

ご回答ありがとうございます。このように更新することで解決策を得ました

self.UpdateNote = function (tblUsers) {
    $.ajax({
        type: "POST",
        url: 'SinglePageApp.aspx/UpdateNote',
        data: "{goalId: " + tblUsers.goalId + "}",
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            alert(result.d);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(textStatus);
            alert(errorThrown);
        }
    });
};

ここで、tblUsersはjsonオブジェクトです。

于 2012-10-09T08:28:03.207 に答える