私のシナリオは次のとおりです。2 つのラジオ ボタンを含むインデックス ページと、結果用のスパン エリアがあります。ラジオ ボタンの 1 つがクリックされると、次のような入力ボックスを持つ ajax 生成ページでスパンがいっぱいになります。
<input size='25' class='datepicker' value='Click to enter deposit date' READONLY type='text' id='depositDate' name='depositDate'>
このページの下部には、JavaScript 検証を開始する [レコードを追加] ボタンがあります。検証は次のとおりです。
var inpDepDate = $.trim($("#depositDate").val());
if(inpPayDate=='Click to enter pay date') // Validate pay date
{
alert('Invalid pay date; re-enter');
document.getElementById('payDate').focus();
document.getElementById('payDate').select();
return false;
}
また、私のjavascriptファイルには次のものがあります:
$(function(){
$( "#depositDate" ).live('focus', function() {
$(this).datepicker({
changeMonth: true,
changeYear: true,
minDate: "+1D",
showOtherMonths: true,
selectOtherMonths: true}).focus();
});
});
問題は、検証が失敗した場合です。テキストは強調表示されて選択されますが、自動的には開きません。
私は多くのことを試しましたが、実際にはこのサイトからたくさんのことを試しましたが、うまくいきませんでした. そして、ライブイベントを認識しないようです。しかし、検証に失敗した後にテキスト ボックスをクリックすると (テキストが強調表示されます)、カレンダーは問題なく開きます。jQuery と ui はかなり新しいものです。