开发者社区> 问答> 正文

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

如下code:

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

各位有何对策?谢谢!



展开
收起
kun坤 2020-06-07 07:58:15 657 0
1 条回答
写回答
取消 提交回答
  • 还是自己回答吧。
    这个应该涉及 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;
    });






    ###### 你好,您这个还是有问题啊!不管if(checkSync()) {是否返回真,ajaxsubmit都被执行了!######呃,好久之前的问题了。当时是这么操作可行的
    2020-06-07 07:58:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
Javascript中的对象 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载