防止所选元素的焦点

时间:2013-04-23 06:17:00

标签: jquery html5

我的网页上有一个HTML计算器。我要做的是选择input字段,然后点击已编号的div元素输入值,但是当我点击input后点击div时,重点是div。如何使用jQuery来防止这种情况。

HTML calculator

在下面的fiddle中,您会看到当我点击输入元素并尝试输入值时,焦点将会离开!如何解决此问题并在输入字段中记录相关值?

2 个答案:

答案 0 :(得分:0)

在文档就绪

上定义一个变量

var focusedInput;

如果焦点更改为在focusedInput

中输入的任何输入存储

focusedInput = $(this);

在div上单击编写代码

$('div.num-button').click( function(){

//some code here

$(focusedInput).focus(); //handle null exception

});

答案 1 :(得分:0)

我知道这已经很晚了,但是,如果有人来看这个答案可能会有所帮助。

正如@anil所说,创建一个变量,您可以在其中存储您的重点输入。然后,当您专注于输入时,将元素存储在变量中。现在,当您点击“键盘”时,获取值并将其添加到聚焦变量输入值。

这是my fiddle我从你原来的小提琴分支。

这是代码:

var focused;
// Stored the input
$('input').focus(function() {
    focused = $(this);
});

// Listen for clicks on the number button
$('.num-button').click(function(){
    // Get the value of the number button that was clicked as string
    var intVal = $(this).find('span').text().toString();
    // Make sure that we have a focused input
    if(typeof focused != 'null' || typeof focused != 'undefined') {
        // Only add numbers to the input field
        if(intVal != "DONE" && intVal != "Del") {
            // Get the values as strings
            var curVal = focused.val().toString(),
                newVal = curVal + intVal;
            focused.val(newVal);
        } else if (intVal == "Del") {
            // Clear the value if the Del "key" was clicked.
            focused.val('');
        }
    }
});