0

フォームに入力フィールドの日付があり、Javascript 検証を追加して、常に今日の日付よりも大きいことを確認したいと考えています。次のことを試しましたが、ユーザーが入力フィールドをクリックして変更を加えたときに関数が呼び出されないようです。

<input type="text" name="InsertRecordGuestOrders_Delivery_date" id="InsertRecordGuestOrders_Delivery_date" value=""/>

<script type="text/javascript">

function validateDate()
{
var del_date = document.getElementById('InsertRecordGuestOrders_Delivery_date').value;

if (Date.parse(del_date) < Date.now()) {
    document.getElementById('InsertRecordGuestOrders_Delivery_date').value = '';
    alert("Delivery date has to be later than today");
    }
}

document.getElementById('InsertRecordGuestOrders_Delivery_date').onChange = validateDate();

</script>

私が間違っていることについて何か提案はありますか?

前もって感謝します。

4

2 に答える 2

1

この行:

document.getElementById('InsertRecordGuestOrders_Delivery_date').onChange = validateDate();

次のようにする必要があります。

document.getElementById('InsertRecordGuestOrders_Delivery_date').onchange = validateDate;

括弧がなくなっていることに注意してください。validateDate()すぐに呼び出すと、 onchange ハンドラとしての戻り値が割り当てられます。関数の戻り値ではなく、関数自体をハンドラーとして割り当てたい。

onchangeまた、 ではなくである必要がありonChangeます。

于 2013-04-03T17:01:39.277 に答える