1

使用 jQuerypost()我正在调用一个返回 json ({"Success": "true" }{"Success": "false"}) 的 ajax 操作。获取 json 后,我试图将隐藏的 HTML 元素的Success值设置为返回对象中的值。设置隐藏元素后,根据 Firebug 的 watch 表达式,它仍然是空的(不是未定义的)。但是在进行另一个相同的调用后,该值已正确设置。我究竟做错了什么?

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 回答