2015-02-27 3 views
0

Я пытаюсь получить последний сфокусированный элемент при нажатии на кнопку, но Ive не повезло. Это мой Javascript функция:Как получить последний сфокусированный ввод текстового поля при нажатии кнопки

function input(e) { 
    e = e.charAt(3); 
    $(".textboxclass").each(function(index, value) { 
     $(this).val(); 
     if ($(this).is(':focus')) { 
      $(this).val($(this).val() + e); 
      $(this).focus(); 
     } 
    }); 
} 

и следующая строка не работает

$(this).is(':focus') 

, когда я установил предупреждение(), прежде чем он работает.

Спасибо.

+0

содержит HTML-код, который вызывает функцию 'input (e)'. Нам нужно знать, как вы вызываете эту функцию и как вы передаете переменную 'e' – CodeGodie

+0

, почему у вас есть' $ (this) .val() 'в первой строке вашего IF условного? он ничего не делает – CodeGodie

+0

$ (this) .val() не полезен – Ninjin

ответ

0

Причина, по которой ее не работает, потому что каждый раз, когда вы нажимаете кнопку, ваше последнее сфокусированное текстовое поле теряет фокус, вам нужно найти другой способ делать то, что вы хотите. Один из способов, о котором я могу думать, - это использовать подход, в котором вы храните элемент, сфокусированный на глобальную переменную, а затем используйте его в yout if условно. Попробуйте:

var $focused; 

    $(".textboxclass").focus(function(){ 
     $focused = $(this); 
    }); 

    function test(id) { 
     e = id.charAt(3); 
     $(".textboxclass").each(function() { 
      if ($(this)[0] == $focused[0]) { 
       $(this).val($(this).val() + e); 
       $(this).focus(); 
      } else { 
       console.log("NOT focused"); 
      } 
     }); 
    } 
+0

@ Нинджин был способен работать на вас? дай мне знать – CodeGodie

Смежные вопросы