2015-02-24 24 views
0

我想驗證使用formvalidation.io中的formvalidator的幾個字段,但我遇到了幾個使用它的問題。我需要找出一個文本框(日期,電話,電子郵件)是否有一個值(用戶填充文本框)並驗證該字段。但是,如果用戶沒有填寫文本框,請不要驗證該字段。用戶可能開始填寫文本框,然後刪除其內容,如果他們這樣做,該字段不應該被驗證。任何人都可以幫我解決這個問題嗎?如果文本框的輸入值發生變化,驗證字段....但如果... Javascript

我已經嘗試了一些不同的技術,如addEventListener等,但我還沒有得到它完全如何我需要它。

這是我目前擁有的一個例子。

$("#Q_dob_text").change(function() { 
    var dob = document.getElementById('Q_dob_text').value; 
    if (dob !== '') { 
     $('#registry').formValidation({ 
      framework: 'bootstrap', 
      icon: { 
       valid: 'glyphicon glyphicon-ok', 
       invalid: 'glyphicon glyphicon-remove', 
       validating: 'glyphicon glyphicon-refresh' 
      }, 
      fields: { 
       dob: { 
        validators: { 
         date: { 
          format: 'MM/DD/YYYY', 
          message: 'The value is not a valid date' 
         } 
        } 
       } 
      } 
     }); 
    } 
}); 

的,我也嘗試過這種變化太...

document.getElementById('Q_date_text').addEventListener("keydown", dateFx); 
    function dateFx() { 
     var date = document.getElementById('Q_date_text'); 
     if (date !== '') { 
      $('#registry').formValidation({ 
       framework: 'bootstrap', 
       icon: { 
        valid: 'glyphicon glyphicon-ok', 
        invalid: 'glyphicon glyphicon-remove', 
        validating: 'glyphicon glyphicon-refresh' 
       }, 
       fields: { 
        date: { 
         validators: { 
          date: { 
           format: 'MM/DD/YYYY', 
           message: 'The value is not a valid date' 
          } 
         } 
        } 
       } 
      }); 
     } 
    } 

任何幫助,不勝感激!

回答

1

問題在於.formValidation調用初始化(綁定)插件以便始終驗證,因此只要您運行一次該代碼,它將始終保持正常工作(即使用戶刪除輸入的文本)。

你真正想要做的是一次初始化,然後更新它的驗證設置(在validators設置),使其不驗證dob(從你的第一個例子),如果它是空的。您可以通過調用「updateOption」或「removeField」來實現,請參閱documentation

+0

謝謝你的建議,我實際上在驗證器中使用了一個回調函數。 – tgbrunet 2015-02-24 14:53:20

相關問題