我有以下代码使用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}
这里似乎有什么问题?感谢。
答案 0 :(得分:1)
您的数组包含整数值,但您的obj.value
是字符串。试试这个。
if( viewCtrl.dliProductsChanged.indexOf(Number(obj.value)) != -1 ){
console.log('HERE');
}