0

ボタンクリックイベントでJavaスクリプトを使用して日付を検証しようとしていました.検証がfalseを返す場合はポストバックを防止し、trueを返す場合はポストバックを許可する必要があります。

問題は、検証がfalseを返してもポストバックが発生していることです.....

私はjavascriptが初めてです。親切に解決策を教えてください.....

これが私のコードです

<script type="text/javascript">
    function ValidateDate() {

        var GridView = document.getElementById('GridView1');           
        var i = 1;
        var rows = GridView.rows.length;           
        for (var j = 0; j < rows - 2; j++) {
            i = i + 1;              
            var FromDate = new Date(document.getElementById('GridView1_ctl0' + i + '_txtFrom').value);
            var ToDate = new Date(document.getElementById('GridView1_ctl0' + i + '_txtTo').value);
            if (ToDate < FromDate) {
                document.getElementById('GridView1_ctl0' + i + '_txtFrom').focus();
                alert('ToDate is less than from date');
                return false;
            }
        }
        return true;      
    }
</script>

ページロードイベントでjavascriptを呼び出しました

this.btnSave.Attributes.Add("onClick", "ValidateDate();");
4

1 に答える 1

2

指定するのを忘れたreturn

あなたは試してみるべきです:

this.btnSave.Attributes.Add("onClick", "return ValidateDate();");

ValidateDate() から値を返しているため、このような条件では、関数呼び出し時にこれを指定する必要があり、false を返すとさらに実行が停止します。

于 2012-04-07T08:26:08.837 に答える