表单验证一些输入必须彼此不同

时间:2016-12-21 09:39:57

标签: javascript forms

我在验证表单时遇到了一些问题。 我想要做的是检查某些输入字段是否相等,如果为true则停止表单输入。 像这样:

<form id="myForm">
<input type="text" id="id1" />
<input type="text" id="id2" />
<input type="text" id="id3" />
<br/>
<input type="text" id="id4" />
<input type="text" id="id5" />
<input type="text" id="id6" />
...some other inputs (id7, id8, id9 - id10, id11, id12 - ...)
<p id="error" hidden="hidden">
Error
</p>
<input id="submit" type="submit" value="submit" />   
</form>

如果id1,id2和id3具有相同的id4值(按相同顺序),则id5 id6必须停止表单输入。 Id1,id2和id3可以具有相同的值,并且Id4可以具有相同的id1值,因此一个,但三个一起(id1,id2,id3)可以具有相同的id4,id5值, ID6。 例如,错误是:

  • id1:一个
  • id2:两个
  • id3:三
  • id4:一个
  • id5:两个
  • id6:三

所有其他案件都没问题。

我正在尝试这样的事情:http://jsfiddle.net/g2kBm/283/但它无效。

2 个答案:

答案 0 :(得分:1)

您的if语句应如下所示:

if((1==4)&&(2==5)&&(3==6)){
    errors = true;
}

答案 1 :(得分:1)

http://jsfiddle.net/g2kBm/284/

您不需要on blur事件,因为您正在检查提交。此外,您需要检查#1 ==#4 AND#2 ==#5 AND#3 ==#6:

$('#myForm').submit(function (event) {
    var errors = false;
    if ($('#id1').val() == $('#id4').val() &&
        $('#id2').val() == $('#id5').val() &&
        $('#id3').val() == $('#id6').val()) {
            $("#error").show(); 
            errors = true;
    } else { 
      errors = false; 
      $("#error").hide();
    }
    if (error) {
      event.preventDefault();
    }
});