2012-07-18 96 views
1

剛剛遇到這個問題,如果我有一個表單域已經填滿,我按提交按鈕的驗證不會發生,但如果我作出更改字段(如在添加字符或two0然後驗證發生......jQuery驗證插件,驗證現有的填充字段

<form id="form_state_edit" method="post" action="javascript:void(0);"> 
       <fieldset class="fieldset"> 
       <legend class="legend">Add a new State</legend> 
       <div id="form-wrapper-state-modal" style="width: 20rem;margin-left:5rem;margin-bottom:0.5rem;margin-top:-14px;"></div> 
       <div style=""> 
       <p class="button-height inline-label"> 
        <label class="label" for="state_name" style="display:inline;">State Name</label> 
        <input type="text" value="<?=$state_name?>" class="input validate[required,custom[onlyLetterSp]]" id="state_name" name="state_name" style="width: 15rem;" /> 
        <input type="hidden" value="<?=$state_arr[1]?>" id="state_id" name="state_id" /> 
        <input type="hidden" value="edit" id="state_action" name="state_action" /> 

        <button id="submit_state" class="button glossy mid-margin-right" type="submit"> 
        <span class="button-icon"> 
        <span class="icon-tick"></span> 
        </span> 
        Save 
        </button> 
        <div id="state_table_temp" style="display:none;"></div> 
       </p></div> 


       </fieldset> 
      </form> 

$("#form_state_edit").validationEngine('attach', { 

      onSuccess: function(form, status){ 
      alert("The form status is: " +status+", it will never submit"); 
} , 
      onValidationComplete: function(form, status){ 
      alert("The form status is: " +status+", it will never submit"); 

      } 

基本上 - 如果沒有變化(如我甚至不單擊窗體域,不輸入任何內容) - onValidationComplete執行和狀態=真

如果我確實做了一個 - onSuccess執行...

我必須寫什麼,以便即使人沒有做任何改變(也沒有點擊表格字段)來形成字段,它將做驗證和成功的一部分轉到...

它似乎在驗證可以開始之前需要「激活」ofr域名。

\ any idea?

+0

jQuery驗證引擎是不一樣的插件作爲廣受歡迎的jQuery驗證由喬恩Zaefferer 。我編輯了你的問題標題,說明你正在使用引擎 – Dogoku 2012-07-18 09:04:11

+0

感謝和抱歉,我正在使用這一個http://posabsolute.github.com/jQuery-Validation-Engine/ – 2012-07-18 09:05:23

+0

我知道:)試試我的解決方案讓我知道你有什麼 – Dogoku 2012-07-18 09:13:45

回答

0

在插件的主頁,here,你可以看到下面的代碼

alert($("#formID1").validationEngine('validate')); 

嘗試使用,在提交按鈕的單擊事件,而不是一個警告對話框,像這樣

$('#submit_state').click(function() { 
    return $("#form_state_edit").validationEngine('validate'); 
}); 

最後我會建議將您的jQuery代碼包裝在文檔就緒事件處理程序中。雖然這裏不需要。如果你的代碼需要引用在它後面聲明的DOM元素,那麼它是約定並且保存你的頭痛。

$(document).ready(function() { 
    //enter code here 
}); 

請記住裸露,我以前沒有使用這個插件,但即時通訊很肯定這應該工作

+0

@dogku代碼被正確包裝...和上述不做任何事情....甚至沒有在螢火蟲中拋出錯誤消息...我怎麼才能解決問題(溫度)通過顯示提醒詢問用戶如果你想保存它的話,改變它的值 – 2012-07-18 09:14:33

+0

如果你在Firebug的控制檯中調用$(「#form_state_edit」)。validationEngine('validate'),它是否正確驗證? – Dogoku 2012-07-18 09:23:33

+0

還沒試過...但我會讓這休息的momement。我有解決方法...謝謝 – 2012-07-18 09:31:09

相關問題