答えはinput
です。 NewToJSに感謝します。
元はYYYY-MM-DDのユーザー入力を持つ種類のカレンダーです。カレンダーは機能していましたが、ユーザーがヒントをクリックした場合、javascriptで入力を読み取ることができなかったことを除いて、すべてのイベントが機能していました - したがって、ユーザーがヒントを選択した場合、カレンダーに適切な日付を表示できませんでした。 Nevertheles、ヒントの日付はフォームに提出され、データベースに書き込まれました。
簡体コード:
function calFnc(date) { /* calnedar code */ }
calFnc.prototype.handleEvent = = function(event) {
console.log(' tagName = '+event.target.tagName+', Id = '+event.target.id+' , class ='+$(event.target).attr('class')+', type='+event.type);
if(event.type === 'input' || event.type === 'keyup') { /* deal with hint or user input */ }
};
var cal1 = new calFnc(); // if date is motted the constructor creates current
document.getElementById('calendar1').addEventListener("click", cal1, false);
document.getElementById('calendar1').addEventListener("keyup", cal1, false);
document.getElementById('calendar1').addEventListener("change", cal1, false);
document.getElementById('calendar1').addEventListener("mousedown", cal1, false);
document.getElementById('calendar1').addEventListener("mousedown", cal1, false);
document.getElementById('calendar1').addEventListener("input", cal1, false);
はoninput' '試してみてください? – NewToJS
いくつかのコードを表示できますか? – aring
私の推測:単にセキュリティ/プライバシー機能。どのサイトでも、フォームフィールドのプレフィルが示唆するすべてのものをスヌープできるようにすることは、ユーザーの最大の関心事ではありません。そのため、ユーザが明示的に提案された値を選択する前に、ウェブサイトのスクリプトにアクセスすることはできません。 _ "私がそれを選択すると、それはフィールドの値になります" _ - 私はそれがあなたがそれを帽子の位置で表示されるということに基づいて、あなたの前提だと思いますか?それがフィールドの設定値になったわけではありません。 – CBroe