2017-03-03 153 views
0

我正在使用JQuery验证罚款,但我需要以某种方式重新验证字段。我有一个具有远程方面的文本字段,并且工作正常。但是,它上面有一个可能更改的选择框。如果选择框的值发生变化,我只想再次进行验证。那可能吗?JQuery验证重新验证

$('#input').validate(
     { 
      rules: { 
       dbname: { 
        required: true, 
        minlength: 1, 
        onKeyUp: false, 
        remote: { 
         type:"post", 
         url:'createdb/checkdbname', 
         data: { 
          catserver: function(){ 
           return $("#catserver").val(); 
          }, 
          prepend: function(){ 
           return $("#prepend").text(); 
          } 

         } 
        } 

       }, 
       dataname: { 
        required: true 
       }, 
       clientsel: { 
        required: true 
       } 

      }, 

      messages: { 
       dbname: { 
        remote: "Database Already Exists on Server" 

       } 
      }, 

基本上,选择框catserver和dbname有点相互依赖。我不确定我是否正确处理这个问题。如果重要的话,我使用codeigniter的形式使用bootstrap。基本上会发生什么是在我验证正确并且某人更改了catserver的选择值之后,dbname的验证不会再次发生,除非我更改了dbname字段的值。

回答

1

当然,你可以绑定变化事件的目标元素会触发您的验证:

$('.my-select-box').on('change', validate); 

function validate() { 
    $('#input').validate(
     { 
      rules: { 
       dbname: { 
        required: true, 
        minlength: 1, 
        onKeyUp: false, 
        remote: { 
         type:"post", 
         url:'createdb/checkdbname', 
         data: { 
          catserver: function(){ 
           return $("#catserver").val(); 
          }, 
          prepend: function(){ 
           return $("#prepend").text(); 
          } 

         } 
        } 

       }, 
       dataname: { 
        required: true 
       }, 
       clientsel: { 
        required: true 
       } 

      }, 

      messages: { 
       dbname: { 
        remote: "Database Already Exists on Server" 

       } 
      }, 
// ....... 
}