无论如何都要检查输入框中是否存在类似的值
EX:
<form>
USER 1
<input name="user1" value="bla1">
<input name="pass1" value="ple1">
<input name="email1" value="foo1@yy.cc">
USER 2
<input name="user2" value="bla2">
<input name="pass2" value="ple1">
<input name="email2" value="foo2@yy.cc">
USER 3
<input name="user3" value="bla1">
<input name="pass3" value="pla3">
<input name="email3" value="foo2@yy.cc">
<button type="submit">
</form>
在提交表单时将触发验证,它将提醒用户并向具有相似值的输入添加类。所有输入字段均以空白开头,用户应输入值。所有字段只应与USER,PASS和EMAIL
类型进行比较答案 0 :(得分:1)
我为你准备了jsfiddle。
基本上它只是循环遍历表单中的每个元素,查找具有相似名称的任何元素,如果它们具有相同的值,则将它们标记为两者。这有点低效,因为它将A与B进行比较,然后将B与A进行比较,但仍能正常运行。
$('form').submit(function(event) {
var ok = true,
$form = $(this),
$inputs = $(this).find('input')
$inputs.removeClass('error')
$inputs.each(function() {
var $src = $(this)
//Get the name of the element, and strip off the number
var name = $(this).attr('name').replace(/[0-9]/g,'')
//Filter the inputs down to only the ones whose name starts the same
$inputs.not(this).filter('[name^="' + name + '"]').each(function() {
if($src.val() == $(this).val()) {
ok = false
$(this).addClass('error')
$src.addClass('error')
}
})
})
if(!ok) event.preventDefault()
})