Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery验证工作不正确?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么jQuery验证工作不正确?

Javascript 为什么jQuery验证工作不正确?,javascript,jquery,Javascript,Jquery,我有两个电子邮件字段:email1和email2。我希望他们两个都是不同的。出于某些原因,我将email1保持为只读,将email2保持为可编辑。下面是我的代码- 我的自定义验证器如下所示- $.validator.addMethod("email_not_same", function(value, element) { return $('#email1').val() != $('#email2').val(); }, "Both emails should not be same")

我有两个电子邮件字段:email1和email2。我希望他们两个都是不同的。出于某些原因,我将email1保持为只读,将email2保持为可编辑。下面是我的代码-

我的自定义验证器如下所示-

$.validator.addMethod("email_not_same", function(value, element) {
  return $('#email1').val() != $('#email2').val();
}, "Both emails should not be same");  
 email1: {
    required: true,
    email: true,
  },
  email2: {
    email: true,
    email_not_same: true,
  },
我的规则如下:

$.validator.addMethod("email_not_same", function(value, element) {
  return $('#email1').val() != $('#email2').val();
}, "Both emails should not be same");  
 email1: {
    required: true,
    email: true,
  },
  email2: {
    email: true,
    email_not_same: true,
  },
我的html代码如下:

<div class="form-group col-md-12">
    <label><strong>Emails : </strong></label>
</div>
<div class="form-group col-md-6">
    <input class="form-control" name="email1" placeholder="Email 1" type="email">
</div>
<div class="form-group col-md-6">
    <input class="form-control" name="email2" placeholder="Email 2" type="email">
</div>

电子邮件:

当我输入两个相同的电子邮件地址时;它根据我的规则显示消息。然而,在那之后,当我更改我的email2时,它仍然显示错误消息。请提供帮助。

您正在对ID(#email1和#email2)使用jQuery选择器,但在HTML中,除了“name”之外没有指定ID属性。 请添加id属性并重试

<input class="form-control" id="email1" name="email1" placeholder="Email 1" type="email">
<input class="form-control" id="email2" name="email2" placeholder="Email 2" type="email">

您缺少电子邮件的
id
属性:

<input class="form-control" id="email1" name="email1" placeholder="Email 1" type="email" />
<input class="form-control" id="email2" name="email2" placeholder="Email 2" type="email" />

正如其他两个答案所建议的,您正在选择器中查找
Id
。您可以添加
Id
或更改选择器以查找
名称,如下所示:-

$.validator.addMethod("email_not_same", function(value, element) {
  return $('[name="email1"]').val() != $('[name="email2"]').val();
}, "Both emails should not be same");

我注意到第二次输入时没有
data val email不相同的属性。这是故意的吗?@Krohn是的,这是故意的。我希望email2与email1不同。所以我就这样做了我不相信我犯了那个错误!!T_THi Praveen。。请你也看看这个好吗@别担心,当然。将要看一看。@Nevermore解决<代码>:D