ソートの検証を行うjQueryフォームがあります。2 つのテキスト ボックスがあるデータ入力画面です。各テキスト ボックスには、1 から無限大までの大きな値がありますが、最初のコントロールでは 36 ~ 84、2 番目のコントロールでは 50 ~ 300 の「望ましい」範囲があります。値が目的の範囲内にある場合、送信は通過します。範囲が希望の範囲外であるが、声に出して聞こえる範囲内にある場合、たとえばどちらかが 25 の場合、送信を押した後にユーザーにプロンプトを表示する必要があります。プロンプトに対して「はい」と答えた場合は送信が行われ、「いいえ」と答えられた場合は送信されません。
Cooper Maryama の助けのおかげで、ASP.Net の世界で実際に答えを実装しようとするところまで来ました。問題は、テキスト ボックス ID が実行時に決定され、ids オブジェクトの初期化関数に渡されることです。
実行すると、次のエラーが表示されます: プロパティ「設定」の値を取得できません: オブジェクトが null または未定義です
これが私のコードです:
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);
});