我输入
中的插入值有问题你可能会问我为什么把keypress输入字段用JS? 我有编译的程序emscripten,它有驱动程序输入拦截所有keypress,keydown,keyup并返回false为页面上的其他元素。 这会阻止页面上的所有输入字段。 我无法在emscripten程序中修复此问题,我决定在html端通过jQuery修复它
jQuery(function() {
var $input = jQuery("#search-area228");
$input
.attr("tabindex", "0")
.mousedown(function(e){ jQuery(this).focus(); return false; })
.keypress(function(e){
var data = jQuery(this).val
var text = String.fromCharCode(e.keyCode || e.charCode)
for(var i = 0; i < text.length; i++)
jQuery(this).val(text[i])
return false; });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="search-area228">
答案 0 :(得分:0)
只需将新文本添加到您已定义(以错误方式)为data
并且未使用该字段的字段中的预先存在的文字
当您调用输入的方法val
时,您应该使用大括号jQuery(this).val()
NOT jQuery(this).val
,因为这是jQuery
的函数方法而不是变量。< / p>
jQuery(function() {
var $input = jQuery("#search-area228");
$input
.attr("tabindex", "0")
.mousedown(function(e){ jQuery(this).focus(); return false; })
.keypress(function(e){
var data = jQuery(this).val();
var text = String.fromCharCode(e.keyCode || e.charCode)
for(var i = 0; i < text.length; i++)
jQuery(this).val(data + text[i])//<<< here
return false; });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="search-area228">
&#13;
答案 1 :(得分:0)
您的代码没有什么错误。
您正在设置当前键的输入值,而不是将其附加到输入的当前值。
jQuery(this).val(jQuery(this).val() + text[i]);
这是固定版本:
jQuery(function () {
var $input = jQuery("#search-area228");
$input.attr("tabindex", "0")
.mousedown(function (e) {
jQuery(this).focus();
return false;
})
.keypress(function (e) {
var data = jQuery(this).val
var text = String.fromCharCode(e.keyCode || e.charCode)
for (var i = 0; i < text.length; i++)
jQuery(this).val(jQuery(this).val() + text[i]);
return false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="search-area228">