私は、ユーザーが次のように選択できることをデータリストがあります:私は「DATA_ID」という名前のデータ属性を保持するために、隠し入力フィールドを持つ複数のエントリが同じ値を共有する場合、選択したデータリストエントリからデータ属性を取り出す方法は?
<input list="user_names" id="names" name="user_name" />
<datalist id="user_names">
<option value="bob" data_id="bob_10">10</option>
<option value="bob" data_id="bob_5">5</option>
<option value="james" data_id="james_7>7</option>
</datalist>
を:
<input type="hidden" name="user_id" id="user_id" value="" />
を私がjQueryのを使用していますユーザーが選択したものからdata_id値を移入します。
jQuery(document).ready(function($){
$('#names').on('input, function(){
var value = $(this).val();
var user_id = $('#user_names [value="' + value + '"]').data('id');
document.getElementById('user_id').value = user_id;
})
});
これは、2つのデータリストのオプションが同じ値を共有するが(二つの「ボブ」のエントリで実証)は、同じデータID、jQueryの代わりに最初のオプションのデータIDをピックアップしない場合を除いて、正常に動作し選択されたもの。 jQueryが各オプションに関連付けられたテキストによって選択したものをさらにフィルタリングする方法はありますか?
ありがとうございました!私はそれが事実であることを知っていた、私はちょうどそこに私が逃した何かがあったかもしれないことを望んでいた。私は最近データリスト要素の不一致を最近発見しました。それは大きな苦痛です。私は代わりにhttp://selectize.github.io/selectize.js/を使用することになります。それは私の問題を解決できるように見えます! –