我的网页上有一个HTML计算器。我要做的是选择input
字段,然后点击已编号的div
元素输入值,但是当我点击input
后点击div
时,重点是div
。如何使用jQuery来防止这种情况。
在下面的fiddle中,您会看到当我点击输入元素并尝试输入值时,焦点将会离开!如何解决此问题并在输入字段中记录相关值?
答案 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('');
}
}
});