我有多个这样的隐藏输入:
<input type="hidden" value="4531" name="product_id">
<input type="hidden" value="4532" name="product_id">
<input type="hidden" value="4533" name="product_id">
如何检查表单提交的值是否重复,我的jquery代码如下(不工作):
$(".btnSubmit").click(function() {
var errorCounterDupInput = 0;
$("input[name='product_id']").each(function (i,el1) {
var current_val = $(el1).val();
console.log("current_val : "+current_val);
if (current_val != "") {
$("input[name='product_id']").each(function (i,el2) {
if ($(el2).val() == current_val && $(el1).attr("name") != $(el2).attr("name")) {
errorCounterDupInput = errorCounterDupInput+1;
}
});
}
});
});
errorCounterDupInput的输出总是0,即使我有这样的重复项:
<input type="hidden" value="4531" name="product_id">
<input type="hidden" value="4531" name="product_id">
<input type="hidden" value="4531" name="product_id">
任何想法?
答案 0 :(得分:2)
这里有两个问题。
$(el1).attr("name") != $(el2).attr("name")
),并且您已经确保它们与您的jQuery选择器相同。所以不会有重复。我建议在循环遍历元素时,缓存它们的值并仅将新值与现有缓存进行比较,这样您就可以准确了解重复计数。
$(".btnSubmit").click(function () {
var errorCounterDupInput = 0;
var product_ids = [];
$("input[name='product_id']").each(function (i, el1) {
var current_val = $(el1).val();
console.log("current_val : " + current_val);
if (current_val != "") {
if(product_ids.indexOf(current_val) === -1){
product_ids.push(current_val);
} else {
errorCounterDupInput++;
}
}
});
console.log(errorCounterDupInput);
});
答案 1 :(得分:0)
建议使用数组方法,您可以检查数组中是否已存在值。不需要复杂的条件,只需要传递一次元素
(Pdb) import myapp.settings
(Pdb) from django.conf import settings
(Pdb) settings.configure(myapp.settings)
(Pdb) from app.models import MyModel
*** AttributeError: 'module' object has no attribute 'DEFAULT_INDEX_TABLESPACE'
答案 2 :(得分:0)
您可能想尝试这个:
$(".btnSubmit").click(function() {
var errorCounterDupInput = 0;
$("input[name='product_id']").each(function (i,el1) {
var current_val = $(el1).val();
if (current_val != "") {
$("input[name='product_id']").each(function (j,el2) {
if ($(el2).val() == current_val && i != j) {
errorCounterDupInput = errorCounterDupInput+1;
}
});
}
});
console.log(errorCounterDupInput);
});
您的代码很好,但只需要稍作修改即可。请参阅以上更改。