2016-06-27 3 views
-1

私は、通常のテキスト入力と非表示フィールドを持つHTMLフォームを持っています。非公開フィールドにオートコンプリート値を設定する

私もそれが変更されたときのいずれかのテキストフィールドの値をhiddenフィールドに移入されます、次のコードを持っている、またはテキストフィールドが(ページ自体によって供給されている)デフォルト値を持っている場合:

$(document).ready(function() { 
 
    var emailinput = document.getElementById('emailval'); 
 

 
    document.getElementById('usernameval').value = emailinput.value; 
 

 
    emailinput.onkeyup = function() { 
 
    document.getElementById('usernameval').value = emailinput.value; 
 
    } 
 

 
    emailinput.onblur = function() { 
 
    document.getElementById('usernameval').value = emailinput.value; 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="email" id="emailval" /> 
 
<input type="hidden" name="username" id="usernameval" />

これは、ブラウザがテキストフィールドを自動入力する場合を除いて、うまく動作します。ユーザーがテキストフィールドを変更せずにフォームを送信した場合。

私の質問は、javascriptにブラウザの自動入力テキストフィールドから値を取得させる方法はありますか?

+0

なぜ賛成投票ですか?少なくともあなたがそれを投票している理由を説明してください。 – Paul

答えて

2

フォームのsubmitイベントにイベントハンドラをアタッチし、#emailvalの値を#usernamevalにコピーします。たとえば、のは、フォームにIDを持っているとしましょう、#FORM:

$('#form').submit(function (event) { 
    'use strict'; 
    $('#usernameval').val($('#emailval').val()); 
}); 

ドキュメント:https://api.jquery.com/submit/

+0

これはトリックでした。 – Paul

0

「input7とは何ですか?私はこれが鍵であると仮定しています。ユーザーがマウスを使用して値を選択する必要があるため、マウスが入力ボックスを離れるときに別のイベントを追加してその値を取得できます。

あなたが検討したいことがあるもう一つのことは、そのフィールドでオートコンプリートをオフにすることです。 https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

+0

申し訳ありません - input7はemailinputとされていました。私は元の質問にそれを修正しました。 – Paul

0

フォームのonsubmitイベントを使用できます。擬似コードは次のとおりです。 -

form.onsubmit= function(e){ 
    e.preventDefault(); 
    document.getElementById('usernameval').value = document.getElementById('emailval').value; 
    this.submit(); 
} 
関連する問題