0

データベースが取り込まれた一連のカスケード ドロップダウンがあります。シリーズの最後のアイテムが選択されたら、データベースの行からデータを取得しようとしています。行にカスタム属性を指定しましたが、そこからデータを取得できないようです。これが私が達成したいことの簡単な例です。

http://jsfiddle.net/WsrBX/

HTML

<body>
<div id="wrapper">
    <form>
        <div>no id</div>
        <select>
            <option>pick</option>
            <option data-pick="33">with id</option>
        </select>
        <div id="there">has an id</div>
        <div>nope</div>
    </form>
</div>
    <div id="yup"></div><!--value should appear here upon selection-->
</body>

JS

    $('option[data-pick]').on('keyup change', function(){
    var idString = $(this).attr('option[data-pick]');
    $('#yup').text(idString);
    });
4

3 に答える 3

0

http://jsfiddle.net/WsrBX/1/

$('select').on('change', function(){
var idString = $(this).find("option:selected").attr('data-pick');
$('#yup').text(idString);
});
于 2013-08-19T06:57:09.000 に答える
0

いくつかのヒント:

  1. changeイベントは でのみ発生し、<select>ではキャプチャできません<option>
  2. keyupイベントは文字通りキーボードのキーを意味しますが、これはあなたが望むものではないかもしれません。

適切な解決策はchangeonをリッスンし、対応するDOM 要素の使用を<select>見つける必要があります。以下の例:<option>selectedIndex<select>

$('select').on('change', function(){
    var idString = this.options[this.selectedIndex].getAttribute('data-pick');
    $('#yup').text(idString);
});
于 2013-08-19T07:14:33.613 に答える