2012-09-12 75 views
0

我有一個jQuery表單,它具有驗證排序的功能。它是一個數據輸入屏幕,上面有兩個文本框。每個文本框的朗讀值爲1到無窮大,但第一個控件的「期望」範圍爲36-84,第二個控件的範圍爲50-300。如果該值在期望範圍內,則提交將通過。如果範圍超出所需範圍,但在大聲範圍內,對於任一範圍說25,那麼在用戶按下提交之後需要提示用戶。如果他們對提示表示肯定,則提交通過,如果他們說不,則不會。jQuery驗證插件:提示覆蓋

感謝Cooper Maruyama的幫助,我已經到了試圖在ASP.Net世界中實際實現答案的地步。問題在於文本框ID在運行時被確定,並被傳遞給ID對象中的初始化函數。

當我運行它,我得到以下錯誤:無法獲得屬性的值「設置」:對象爲空或未定義

這裏是我的代碼:

var manageResidentWeightsJs = { 

    initialize: function (ids) { 

     var cbDeclined = $(ids.cbDeclined); 
     var cbIsOutOfFac = $(ids.cbIsOutOfFac); 

     $('<div id=errorSummary>The following values fall out side of the normal range:</div>') 
       .append('<ul id="errorsList"></ul>').hide().insertAfter(ids.formView); 

     var txtHeight = $(ids.txtHeight); 
     var txtWeight = $(ids.txtWeight); 

     function confirmation() { 
      var x; 
      var r = confirm("Are you sure?"); 
      if (r == true) { return true; } 
      else { return false; } 
     } 

     $(ids.formView).validate({ 
      invalidHandler: function (form, validator) { 
       if (confirmation()) { form.submit(); } 
      } 
     }); 

     txtHeight.each(function (index, elem) { $(elem).rules("add", { min: 0 }) }); 
     txtWeight.each(function (index, elem) { $(elem).rules("add", { min: 0 }) }); 
    } 
} 

的跟着代碼被用來調用上面的代碼。在此代碼ASP.Net已經被替換爲「#」作爲從問題消除ASP.Net因素:)

$(document).ready(function() { 
    var ids = { 
     formView: '#mainForm', 
     txtHeight: '#heightCtrl', 
     txtWeight: '#weightCtrl' 
    }; 

    manageResidentWeightsJs.initialize(ids); 
}); 

回答

0

告訴驗證器,一個「不想要的」的範圍爲「無效」。然後使用invalidHandler顯示一個確認框。如果他們擊中確定,強制表單提交反正。

工作示例:http://jsfiddle.net/FqX6h/14/

你必須編輯驗證規則根據自己的喜好。

HTML:

<form id="form" action=""> 
    <input type="text" name="some_name" value="" id="some_name" minlength="5"> 
    <input type="submit" value="submit" class="required" size="10" onclick=""> 
    </form> 

JS:

 function confirmation() { 
      var r=confirm("Are you sure?"); 
      if (r==true) {return true;} 
      else {return false;} 
     } 
     $(function() { 
      $("#form").validate({ 
       rules: { 
        some_name: { 
         required: true 
        } 
       }, 
       invalidHandler: function(form, validator) { 
        if (confirmation()) {form.submit();} 
       } 
      }); 
     }); 
+0

我很抱歉,但它並沒有回答這個問題:(我會在我的例子來闡明上述 –

+0

主要的問題我有。你的例子是它沒有使用jQuery驗證框架,我只是有一個想法:我可以連接到sumbit的onclick,獨立於在驗證後會被調用的驗證,說驗證可以提交?這樣,只有在系統確定該值爲al後,纔會檢查所需的值烏德琴。 –

+0

已更新,請參閱新的答案 –