如下code:
$('#form1').ajaxForm({ dataType: "json", beforeSubmit: function(a,f,o) { //给表单中某个隐藏值赋值 document.getElementById("oscId").value= '123'; }, success: function(json) { //... }, error: function() { //... } });通过firebug定位 oscId 每次都是空值,除非手动填写能传递,如上在beforeSubmit 中动态赋值无效。
各位有何对策?谢谢!
还是自己回答吧。
这个应该涉及 ajaxForm 和 ajaxSubmit两个方法的区别:
ajaxForm不能提交表单。在document的ready函数中,使用ajaxForm来为AJAX提交表单进行准备。提交动作必须由submit开始。
ajaxSubmit:马上由AJAX来提交表单。你可以在任何情况下进行该项提交。 由于可以在任何情况下调用,那在ajaxSubmit之前可以进行相关方法赋值等操作。
采用如下解决方案:
$('#form1').submit(function(){ //checkSync()为自定义的赋值方法 if(checkSync()) { //要注意ajaxForm 和 ajaxSubmit的用法区别,表单提交前如果涉及到动态赋值,建议用ajaxSumbit $(this).ajaxSubmit({ dataType: "json", beforeSubmit: function(a,f,o) { //... }, success: function(json) { //... }, error: function() { //... } }); } return false; });
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。