2017-10-19 104 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克里斯蒂,請發送更多的代碼。 –