我有一个具有排序验证的 jQuery 表单。这是一个数据输入屏幕,上面有两个文本框。每个文本框的大声值从 1 到无穷大,但第一个控件的“所需”范围为 36-84,第二个控件为 50-300。如果该值在所需范围内,则提交通过。如果范围超出所需范围,但在大声范围内,例如 25 为任一范围,则需要在用户按下提交后提示用户。如果他们对提示说是,则提交通过,如果他们说不,则不提交。
感谢 Cooper Maruyama 的帮助,我已经到了尝试在 ASP.Net 世界中实际实现答案的地步。问题是文本框 id 是在运行时确定的,并被传递给 ids 对象中的初始化函数。
当我运行它时,我收到以下错误:无法获取属性“设置”的值:对象为空或未定义
这是我的代码:
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);
});