使用jQuery提交表单时的竞争条件 [英] Race-condition when submitting form with jQuery
本文介绍了使用jQuery提交表单时的竞争条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为了能够使用jQuery提交表单(非ajax),我必须进行一次黑客攻击。
如果我不做 if
语句表单不会提交:
这个工作(表单获取提交)
$(#myHiddenFieldID).val(JSON.stringify(jsObject));
/ h3>
var x = $(#myHiddenFieldID)。val();
if(x){
$(#myHiddenForm)。submit();
这不起作用(表单不会被提交的字段保持为空)
$(#myHiddenFieldID).val(JSON.stringify(jsObject));
var x = $(#myHiddenFieldID)。val();
//我以前在这里放置了一个警报,显示__before__文本出现在文本字段中!!! !!!
$(#myHiddenForm)。submit();
我不明白,为什么我必须阅读这里的textfields内容......
解决方案由于提升,赋值语句在值传递到文本字段之前执行:
var x = $(#myHiddenFieldID)。val ();
$(#myHiddenFieldID)。val(JSON.stringify(jsObject));
$(#myHiddenForm)。submit();
I have to do a hack in order to be able to submit a form (non-ajax) using jQuery.
If I don't do the
if
statement the form won't submit:This works (Form gets submitted)
$("#myHiddenFieldID").val(JSON.stringify(jsObject)); var x = $("#myHiddenFieldID").val(); if (x) { $("#myHiddenForm").submit(); }
This doesn't work (form does not get submitted field stays empty)
$("#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();
I don't understand, why I have to read the textfields content here...
解决方案Due to hoisting, the assignment statement is executed before the value is passed to the text field:
var x = $("#myHiddenFieldID").val(); $("#myHiddenFieldID").val(JSON.stringify(jsObject)); $("#myHiddenForm").submit();
这篇关于使用jQuery提交表单时的竞争条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文