0

私は剣道数値テキストボックスを持っています。最小値を 1 に、最大値を 31 に設定しました。31 より大きい値を入力すると、「値は 1 から 31 の間である必要があります」というエラー メッセージが表示されます。より大きい値を入力すると、ウィジェットは最大値に丸めます。したがって、キーボードで 50 の値を入力し、入力からフォーカスを失うか、フォームを保存すると、値は最大値の 31 に丸められます。

ウィジェットのテキストボックスに大きな値を入力するとエラーメッセージが表示されるようにしたい。これが私のコードです:

        @(Html.Kendo().NumericTextBox<int>()
        .Name("month_day_1")
        .Format("#")
        .Min(1)
        .Max(31)
        .Events(evnt => evnt.Change("Change"))

剣道数値テキストボックスの変更イベントに条件を適用しようとしましたが、コンソールで変更が定義されていないため、エラーが発生しました。

ここに私のJavaScript関数があります:

    function Change(e) {
    debugger;
    var numerictextbox = $("#month_day_1").data("kendoNumericTextBox");
    var value = numerictextbox.value();

    if (value > 31) {
        alert("Month Day value must be between 1 and 31");
        return false;
    }
} 
      )
4

1 に答える 1

0

これはまさにあなたが必要とすることをするはずです:

    @(Html.Kendo().NumericTextBox<int>()
    .Name("month_day_1")
    .Format("#")
    .Min(1)
    .Events(e => e.Change("ChangeInput"));

function ChangeInput(e) {
    var value = this.value;
    //This should work too
    //Using jQuery --> to use, delete value = this.value and uncomment the line below
    //var value = $("#month_day_1").val();

    if (value > 31) {
        alert("Month Day value must be between 1 and 31");
        return false;
    }
}   

入力自体によって呼び出されるイベントにいるため、キーワードthisは入力を参照します。で値を取得するとthis.valueうまくいくはずです。JavaScript がページ上にあり、読み込まれていることを確認してください。

于 2015-01-01T16:49:51.763 に答える