为了能够使用jQuery提交表单(非ajax),我必须做一个修改。

如果我不执行if语句,则表单不会提交:

这有效(提交表单)

$("#myHiddenFieldID").val(JSON.stringify(jsObject));
var x = $("#myHiddenFieldID").val();
if (x) {
    $("#myHiddenForm").submit();
}


这不起作用(表单未获取提交的字段保持为空)

$("#myHiddenFieldID").val(JSON.stringify(jsObject));
var x = $("#myHiddenFieldID").val();
// I used to put an alert here, which was shown __before__ the text appeared in the text field???!!!
$("#myHiddenForm").submit();


我不明白,为什么我必须在这里阅读文本字段的内容...

最佳答案

由于hoisting,在将值传递到文本字段之前执行赋值语句:

var x = $("#myHiddenFieldID").val();
$("#myHiddenFieldID").val(JSON.stringify(jsObject));
$("#myHiddenForm").submit();

10-06 10:34