2016-02-09 165 views
0

我有以下代码的服务器上使用Ajax使用jQuery表格插件提交数据:删除项根据条件

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]

物镜内部ARR

对象{名:“ci_inventorybundle_discountlevelitemcollectiontype [discountLevelItemProducts] [0] [variant]“,值:”1899“,类型:”hidden“,required:true}

这似乎是什么问题?谢谢。

+0

在你的beforeSubmit函数中,如何在'obj'和'viewCtrl.dliProductsChanged'中有什么样的数据。你可以发布一些虚拟数据 –

+0

@PrashantAgrawal我编辑我的问题,请参阅。谢谢。 – iamjc015

+0

@JCFrane我想这是空的:'console.log(arr);'.......?你可否确认? – Jai

回答

1

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

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

我是个白痴。谢谢。 – iamjc015