1

オプションとカスタム属性を含むデータリストがあります。

<input list="selectedItems" class="selectedItemsList"></input>
                                <datalist id="selectedItems">
                                    <option value="test11" oldvalue="f1"></option>
                                    <option value="test12" oldvalue="f2"></option>
                                </datalist>

ポップアップで表示されます。ポップアップが値を閉じると、関数でカスタム属性値を使用する必要があります...

私は試した:

alert($("#selectedItems option:selected").val());

alert($("#selectedItems option:selected").attr("oldvalue"));

$('.selectedItemsList option').each(function() {
    if($(this).is(':selected')){
     alert($(this).val());
   }
});

for (var i=0; i<document.getElementById('selectedItemsList').options.length; i++)
                { 
                    if (document.getElementById('selectedItemsList').options[i].value ==  document.getElementsByName("selectedItems")[0].value) 
                    { 
                      alert(document.getElementById('selectedItemsList').options[i].value);
                      break;
                    }                                                
               }

何も機能しません。


on-event を使用して値を取得できますが、それはオプションではありません。

$('.selectedItemsList').on('input', function() { ...  
alert($(this).val());
4

2 に答える 2

1
$(function(){$("input[name=selectedItems]").on('input', function(){// selects which array raw is edited
            for (var i=0; i<dList.length; i++) if(dList[i].ItemName===$(this).val()) { num = i;
            $(".selectedItems option[value="+dList[num].ItemName+"]").val($(this).val());
            dList[num].ItemName=$(this).val();
        });
    });

したがって、datalist oninput イベントを使用して、選択した値を取得します。次に、データリストの値を表す値の配列の raw を編集します。

var dList=[];num=0;
dList.push({ItemName: $(this).attr('value'), ViV: vs[0], NU: vs[1], ItemKey: $(this).attr('key')});
于 2015-04-07T09:53:40.947 に答える
0

基本的に、問題はセレクターの使用に関連していると思います。データリストから古い値を取得しようとしていると仮定しています。ポップアップを閉じるときは、最初に入力の値を取得する必要があります

var inputval= $(".selectedItemsList").val();
alert(inputval);

次に、入力の値に基づいて関連する oldvalue を取得します。

var oldval= $('datalist#selectedDevices option[value='+inputval+']').attr('oldvalue');
if (oldval)
    alert(oldval);

ここで遊んでいただけるように、jsfiddle を作成しました。
http://jsfiddle.net/jornjjt6/

于 2015-03-02T21:00:27.307 に答える