我的屏幕键盘工作正常一段时间。
我最近不得不将jQuery添加到系统中,现在它不再起作用了。按下按钮什么都不做,因为当按下按钮时文本输入不再具有焦点,我无法从我的jscript重新聚焦它。
输入html(注意使用优秀的jq_watermark - 我需要jQuery的原因):
<input class="search jq_watermark" id="barcode" name="barcode" type="text" title="Please enter search criteria."/>
以下是其中一个按钮的html:
<td onclick="addChar('Q')"><button class="osk" id="Key_Q" value="Q">Q</button></td>
这是addChar脚本。注意许多尝试集中这个领域,现在都失败了jQuery:
// The field the keyboard should edit.
field = document.forms['main'].elements.item('barcode');
function addChar(c) {
console.log("Char("+c+")");
field.focus();
if(field.maxLength == -1 || field.value.length < field.maxLength) {
// Handle different browsers.
if (field.selectionStart || field.selectionStart == '0') {
var start = field.value.substr(0,field.selectionStart);
var end = field.value.substr(field.selectionEnd,field.length);
field.value = start + c + end;
} else if (document.selection) {
field.focus();
var range = document.selection.createRange();
range.text = c;
range.moveStart('textedit',1);
range.select();
} else {
field.value = field.value + c;
}
field.focus();
}
return false;
}
我必须添加此项才能停止提交表单的按钮。我怀疑这是我需要放置新东西的地方,但是对jQuery不熟悉我不知道是什么:
$("button.osk").click(function(event){
// Stop it submitting in case the keyboard is inside a form.
event.preventDefault();
});
P.S。我知道整齐的jQuery弹出键盘,并希望用他们的替换我的,但现在不是一个选项。
答案 0 :(得分:0)
使用Jquery时,必须将所有jquery脚本放在以下内容之间:
<script>
$(document).ready(function()){
//your jquery stuff here
});
</script>
我说明这一点的唯一原因是因为您没有提供所有代码。是否可以在jsFiddle.net上提供基础知识,或类似的东西,以便有人可以为您测试。
答案 1 :(得分:0)
问题解决了:
问题似乎在这里:
field = document.forms['main'].elements.item('barcode');
显然jQuery的到来使得这不起作用。我暂时将其替换为:
var field;
$(document).ready(function(){
field = document.forms['main'].elements['barcode'];
});
请注意,我将其封装在ready
函数中,而不是通过items
访问它。这在IE8中不起作用。我将不得不解决这个问题。