2017-10-19 108 views
0

我有一个带有验证码的表单。页面加载时验证工作正常。但用户可以使用不同的值重新加载验证码。在那个时候,jquery验证不起作用。 equalTo函数检查该输入字段的第一个值,而不是重新加载后的最后一个值。请帮我解决它。当输入值发生变化时,JQuery验证equalTo函数不起作用

HTML

<div class="refreshcaptcha dispinitial"><input type="text"></div> 

jQuery验证刷新变化时,这个常数

$("#hireform").validate({ 
    ignore: ".ignore" 
    , errorElement: "label" 
    , errorClass: "has-error" 
    , submitHandler: function (e) { 
     e.submit() 
    } 
    , highlight: function (e) { 
     $(e).closest(".form-group").removeClass("success").addClass("has-error") 
    } 
    , rules: { 
     name: { 
      required: !0 
      , maxlength: 45 
     } 
     , email: { 
      required: !0 
      , maxlength: 100 
     } 
     , message: { 
      required: !0 
      , minlength: 6 
      , maxlength: 1500 
     } 
     , captcha: { 
      equalTo: $('#hireform').find('.refreshcaptcha>input') 
     } 
    } 
}) 

回答

0

我找到简单的解决方案。

  1. 可以在输入栏内使用equalTo函数。或
  2. 在jQuery的

HTML创建equalTo: "#cap_val_reload"

<input type="text" name="captcha" equalTo="#cap_val_reload" class="form-control captchauser" minlength="5" required maxlength="5" value="" placeholder="Please enter above value"> 

JQuery的

$("#hireform").validate({ 
    ignore: ".ignore" 
    , errorElement: "label" 
    , errorClass: "has-error" 
    , submitHandler: function (e) { 
     e.submit() 
    } 
    , highlight: function (e) { 
     $(e).closest(".form-group").removeClass("success").addClass("has-error") 
    } 
    , rules: { 
     name: { 
      required: !0 
      , maxlength: 45 
     } 
     , email: { 
      required: !0 
      , maxlength: 100 
     } 
     , message: { 
      required: !0 
      , minlength: 6 
      , maxlength: 1500 
     } 
     , captcha: { 
      required: !0 
      equalTo: "#cap_val_reload" 
     } 
    } 
}) 
0

商店验证码值作为一个常数。并在验证检查catcha是否等于常量。 没有看到更多的代码不能提供帮助。

+0

有一个按钮,用户更改'.refreshcaptcha> input'值。当他们点击那个按钮时,这个值会一直改变。所以我想要等于那些价值。当我使用'equalTo'函数时,它会检查第一个值。不是用户改变的最后一个值。希望你明白。 – acmsohail

+0

我假设它不是谷歌captcha ..当用户按刷新按钮,将新值替换为常量。并在验证检查验证码是否等于常量..希望你得到它 –

+0

这不是谷歌验证码。我在CodeIgniter框架中使用了一些默认功能。我使用ajax重新加载验证码并更改值。我尝试了不变的价值,但没有锻炼。 – acmsohail

0

也许使用.change()

$("input[type='text']").change(function() { 
 
    alert("work") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text">

Click for Explain

+0

它没有'validate' – acmsohail

+0

工作,我同意Blesson克里斯蒂,请发送更多的代码。 –