jQuery.form 在beforeSubmit中动态赋值无效

发布于 2021-11-24 04:46:14 字数 455 浏览 852 评论 3

如下code:

$('#form1').ajaxForm({
	dataType: "json",
    beforeSubmit: function(a,f,o) {
    	//给表单中某个隐藏值赋值
	document.getElementById("oscId").value= '123';
    },
    success: function(json) {
    	//...
    },
    error: function() {
    	//...
    }
});
通过firebug定位 oscId 每次都是空值,除非手动填写能传递,如上在beforeSubmit 中动态赋值无效。

各位有何对策?谢谢!



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

柳若烟 2021-11-25 06:31:20

呃,好久之前的问题了。当时是这么操作可行的

岁月打碎记忆 2021-11-24 12:48:12

你好,您这个还是有问题啊!不管if(checkSync()) {是否返回真,ajaxsubmit都被执行了!

酷到爆炸 2021-11-24 08:51:59

还是自己回答吧。
这个应该涉及 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;
});

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文