jQuery将隐藏元素值设置为post()数据

时间:2013-11-07 18:39:21

标签: javascript jquery html ajax json

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

的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" />

1 个答案:

答案 0 :(得分: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(或者就此而言)。

编辑:This杰森的评论非常有帮助。