1

jQuery を使用して、json (または)post()を返す ajax アクションを呼び出しています。json を取得した後、非表示の HTML 要素の値を返されたオブジェクトの値に設定しようとしています。非表示の要素を設定した後も、Firebug のウォッチ式によると、まだ空 (未定義ではない) です。しかし、別の同一の呼び出しを行った後、値は適切に設定されます。私は何を間違っていますか?{"Success": "true" }{"Success": "false"}Success

JavaScript

function setValue() {
            $.post('/action', { "data": "dummy" }, function (data) {
                if (eval(data.Success))
                    $('#hiddenResult').prop('value', 'true');
                else
                    $('#authResult').prop('value', 'false');
            }, "json").fail(function () {
                $('#hiddenResult').prop('value', 'false');
            });
        }

HTML

<input type="hidden" id="hiddenResult" name="hiddenResult" />
4

1 に答える 1

2

val()入力の値を変更するために使用します。

$.post('/action', { "data": "dummy" }, function (data) {
    if (data.Success)  // might need to be: if (data.Success == 'true') {
        $('#hiddenResult').val('true');
    else
        $('#authResult').val('false');
    }, "json").fail(function () {
        $('#hiddenResult').val('false');
});

evalまた、そこで(またはどこでも)使用する必要はありません。

編集:ジェイソンによるこのコメントは非常に役に立ちました。

于 2013-11-07T18:44:23.550 に答える