0

我的网页中有一个 HTML 计算器。我想要做的是选择一个input字段,然后通过单击编号的div元素输入值,但是当我单击input和之后div,焦点来到div. 如何使用 jQuery 防止这种情况发生。

HTML 计算器

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

4

2 回答 2

0

在准备好的文档上定义一个变量

var focusedInput;

如果焦点更改为在focusedInput 中输入的任何输入存储

focusedInput = $(this);

在 div 点击写你的代码

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

//some code here

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

});

于 2013-04-23T06:46:05.837 回答
0

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

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

这是从你原来的小提琴分支出来的小提琴。

这是代码:

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('');
        }
    }
});
于 2015-10-15T14:18:47.863 回答