2012-09-12 76 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

已更新,请参阅新的答案 –