2016-11-04 4 views
-1

データを入力すると、入力フィールドにヒントが表示されます。Javascript、入力フィールドから、ユーザーが選択したヒント値を読み取る方法は?

これを選択するとフィールドの値になりますが、入力またはクリックしない限り、JavaScriptはそれを表示しません。

私は試しましたchangemousedownclick、 'keyup'、 'input'イベントです。 JavaScriptは、ユーザーが選択したヒントを理解していません。

JavaScriptを使用して入力フィールドからユーザーが選択したヒント値を読み取る方法は?

+0

はoninput' '試してみてください? – NewToJS

+1

いくつかのコードを表示できますか? – aring

+0

私の推測:単にセキュリティ/プライバシー機能。どのサイトでも、フォームフィールドのプレフィルが示唆するすべてのものをスヌープできるようにすることは、ユーザーの最大の関心事ではありません。そのため、ユーザが明示的に提案された値を選択する前に、ウェブサイトのスクリプトにアクセスすることはできません。 _ "私がそれを選択すると、それはフィールドの値になります" _ - 私はそれがあなたがそれを帽子の位置で表示されるということに基づいて、あなたの前提だと思いますか?それがフィールドの設定値になったわけではありません。 – CBroe

答えて

0

答えは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); 
関連する問題