0

ソートの検証を行う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);
});
4

1 に答える 1

0

「望ましくない」範囲が「無効」であることをバリデーターに伝えます。次に、invalidHandler を使用して確認ボックスを表示します。OK がヒットした場合は、とにかくフォームを強制的に送信します。

作業例: 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();}
                }
            });
        });
于 2012-09-13T08:27:39.613 に答える