根据条件删除JQuery Form Plugin中的beforeSubmit回调项

时间:2016-02-09 08:51:39

标签: javascript jquery ajax

我有以下代码使用JQUERY Form插件使用ajax在服务器上提交数据:

initForm: function() {
                //submit form function
                var options = {
                    delegation: true,
                    dataType: "json",
                    beforeSubmit: function(arr, $form, options) {
                        console.log(viewCtrl.dliProductsChanged);

                        for (var j = 0; j < arr.length; j++){
                            var obj = arr[j];
                            //always returns -1
                            if( viewCtrl.dliProductsChanged.indexOf(obj.value) != -1 ){
                                console.log('HERE');
                            }

                        }

                        $form.find( ".submit-button" ).button( "loading" );
                        $form.find( ".discount-value, .trucking" ).addClass( "uneditable-input" );
                        $form.find( ".discount-type" ).attr( "readonly", true );
                    },
                    success: function(responseText, statusText, xhr, $form) {
                        if ( responseText.status == "success" ) {
                            viewCtrl.modal.modal( "hide" );
                            $.growl.notice({ title: "<strong>Saved</strong>", message: responseText.message, size: "large", duration: 5000, location: "br" });
                        } else {
                            viewCtrl.modal.find( ".modal-content" ).html( responseText.form );
                        }

                        $form.find( ".submit-button" ).button( "reset" );
                    }
                };

                $( "#manage-products-form" ).ajaxForm( options );
},

现在我想在提交之前过滤一些项目。我想删除不在viewCtrl.dliProductsChanged中的项目。但是,当我检查特定项目是否在viewCtrl.dliProductsChanged时,它始终返回-1。但我确信该项目适用于我做了很多console.log()

这些是我记录的

  

viewCtrl.dliProductsChanged
  [1899]

obr里面的arr

  

Object {name:“ci_inventorybundle_discountlevelitemcollectiontype [discountLevelItemProducts] [0] [variant]”,value:“1899”,type:“hidden”,required:true}

这里似乎有什么问题?感谢。

1 个答案:

答案 0 :(得分:1)

您的数组包含整数值,但您的obj.value是字符串。试试这个。

if( viewCtrl.dliProductsChanged.indexOf(Number(obj.value)) != -1 ){
    console.log('HERE');
}