我正处于一个客户需要创建自定义HTML表单的项目中。我已经设法在这里创建了一个表单构建器:
https://jsfiddle.net/Rockhopper92/supv9019/
然后,用户可以为每个表单元素命名,但这需要是唯一的名称,因为当在单独的页面上输出表单时,它将用作实际的name =“”元素。
所以我的问题是如何使用class =“info”循环输入以检查给定值是否唯一?作为一个警告,因为它进入数据库的方式,一旦删除了空格,它就需要是唯一的,例如:
文字1& Text1将显示为重复。
到目前为止,我已经写过:
$("form.forms").on("submit", function(e){
e.preventDefault();
var total = $(".info").length;
var x = 1;
while(x <= total){
//what do I do here!!
x++
}
});
我已经设法让它确定有多少元素具有info类,然后遍历那么多元素。我正在努力的是如何将数字1与所有其他数据进行比较,然后将2与其他数据进行比较...等等。
非常感谢任何帮助。
答案 0 :(得分:0)
最后设法让这个工作。问题是表单元素没有绑定到JQuery,因为它是在初始页面加载后创建的,所以我运行这个脚本INSIDE我的更广泛的函数来创建其他表单元素:
$('form.forms').submit(function(e) {
var ar = $('#myForm input').map(function() {
if ($(this).val() != '') return $(this).val()
}).get();
var unique = ar.filter(function(item, pos) {
return ar.indexOf(item) != pos;
});
if(unique.length != 0){
e.preventDefault();
alert('duplicate')
}
});
如果表单中存在重复值,则仅阻止表单提交。