0

以前および現在選択されている要素を追跡するドロップダウン メニューがあります。ドロップダウンのデフォルト値は {0} から始まります。ユーザーがドロップダウンを変更すると、新しい値は {2} と保存されますが、ユーザーがドロップダウンをクリックしてから新しい値に再び焦点を合わせない限り、以前の値は常に {0} であり、この場合、その値に対する以前の更新はその値を更新します。 {2}。

基本的にすべての変更イベントで、ユーザーがドロップダウン ボックスのフォーカスを解除しない場合でも、フォーカスを強制的に更新する方法はありますか?

(function () {
var previous;

    $('select[name=item_a]').focus(function () {
        previous = parseInt($(this).val()); }).change(function() {

            var new_value = $(this).attr('id'); 

     }
4

4 に答える 4

1
var previous, new_value;

$('select[name=item_a]').on({

   focus: function(){
      previous = parseInt($(this).val());
   },

   change: function(){
        new_value = $(this).attr('id');
        $(this).blur();
   }

 });
于 2012-11-26T17:11:37.123 に答える
0

フォーカスをトリガーするには、次を呼び出すことができます。

$('select[name=item_a]').trigger('focus')
于 2012-11-26T17:06:45.753 に答える
0

このように使用できます

$("input").on("focus", function(e) {
your code
});

$("input").on("change", function(e) {
your code
});
于 2012-11-26T17:09:57.870 に答える
0

これにより、変更時に値が設定されます。

var previous, current;

$('#select[name=item_a]').change(
    previous = current;
    current = $('#select[name=item_a]').val();
);

また、select の id を設定することをお勧めします。これにより、$('#selectId')パフォーマンス$('select[name=item_a]')が向上し、JQuery セレクターが読みやすくなります。

于 2012-11-26T17:18:42.890 に答える