2014-11-17 121 views
0

我需要一些排序幫助(不確定這是否合適)兩個jQuery函數,以便兩者可以共存。調用第二個函數後啓用字段函數觸發器

我想要做的是添加一個新的功能,使字段不可編輯給用戶,如disabled="disabled"。 Catch是,如果我只將disabled="disabled"應用於提交的表單將不會以表單提交的形式發送它的值。

因此,我寫了一些JS代碼,它使得字段能夠在提交前提交併且允許在提交表單時發送它們的值。

所有工作正常後,頁面加載。

問題是當用戶將其中一個必填字段留空並嘗試提交表單時。然後還有另一個jQuery會觸發 - 驗證字段內容。

第二個驗證功能觸發啓用字段功能,所有字段都可以再次編輯。

需要一些幫助,瞭解如何防止第二個函數覆蓋啓用函數。

這裏是代碼 - 啓用功能,這樣的表格前正確放置:

<script> 
jQuery(function($) {  
    $('form').bind('submit', function() { 
     $(this).find(':input').removeAttr('disabled'); 
    }); 

}); 
</script>  

    <form name="RegFrm" id="RegFrm" action="" method="post"> 
      <select class="validate[required] text-input" disabled="disabled"> 
       <option value="">Please Select</option> 
      </select> 
      <input name="sbtFrm" type="submit" value="Submit" /> 
    </form> 

這裏是放置在一個單獨的文件中的第二個字段校驗功能。它正在從files_include.php每次調用的頁面加載:

var genVar = jQuery.noConflict(); 
    genVar(document).ready(function(){ 
     genVar("#RegFrm").validationEngine(); 
    }); 

如何防止第二功能觸發的第一個?

謝謝?

+0

只要把代碼在其再次禁用域驗證的結束?這似乎是一個固有的問題,因爲您在提交時刪除禁用的屬性。 – user3154108

+0

已經嘗試過,但它不起作用:( – BradG

+0

'$(this).find(':input')。removeAttr('disabled');'這看起來好像是*去除* disabled'屬性,啓用字段,一旦提交按鈕被點擊?或者我誤解了? –

回答

0

謝謝大家的意見。雖然,沒有解決方案建議你們給了我一個想法如何解決它。

我基本上決定檢查表單提交如果表單驗證,只有如果是true,然後啓用函數觸發。

這是代碼:

jQuery(function($) {  
    $('form').bind('submit', function() { 
     if($("#RegFrm").validationEngine('validate')){ 
      $(this).find(':input').removeAttr('disabled'); 
     }; 
    }); 

}); 
相關問題