Jquery onfocus / onchange事件

时间:2012-11-26 17:04:34

标签: jquery html

我有一个下拉菜单,可以跟踪前一个和当前选定的元素。下拉默认值从{0}开始。当用户更改下拉列表时,new_value将存储为{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 个答案:

答案 0 :(得分: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();
   }

 });

答案 1 :(得分:0)

要触发焦点,您可以致电:

$('select[name=item_a]').trigger('focus')

答案 2 :(得分:0)

你可以这样使用

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

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

答案 3 :(得分: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选择器将更容易阅读。