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

标签 javascript jquery html ajax json

使用 jQuery post() 我正在调用一个返回 json 的 ajax 操作({"Success": "true"}{"Success": "false"}).获取 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" />

最佳答案

使用 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 Jason 的评论非常有帮助。

关于javascript - jQuery 将隐藏元素值设置为 post() 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844014/

相关文章:

javascript - Polymer CSS::content 选择器不工作

javascript - 为什么我不能 destroy() 这些路标?

javascript - 如何在 Javascript 中将数组对象/元素写入表

javascript - 使用 XML 将带有 < 的 HTML 表导出到 Excel

javascript - 如何使文本自动出现在 HTML 页面中的所有 blockquote 之后?

JavaScript 字符串连接不起作用

JavaScript/jQuery 间隔在 Internet Explorer 中执行两次

javascript - 适合新手的简单 Javascript div 选择

html - Flexbox 包裹在容器外面

jquery - 使用带有格式化表格数据的 jsPDF 创建 pdf