在输入值中插入按键
Insert keypress in input value
您好,我在输入中插入值有问题
你可能会问为什么我把按键输入框用JS?
我有编译程序 emscripten,它有驱动程序输入,可以拦截页面上其他元素的所有按键、按键、按键和 returns 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">
这将解锁输入字段,但问题是只允许您输入一个字符,当您单击以下内容时将替换它!
请帮忙!
只需将新文本添加到您已经(以错误的方式)定义为 data
而未使用的字段中的现有文本中
当您调用输入的方法 val
时,您应该使用大括号 jQuery(this).val()
而不是 jQuery(this).val
因为这是 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(data + text[i])//<<< here
return false; });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="search-area228">
您的代码几乎没有错误。
您将输入的值设置为当前键,而不是将其附加到输入的当前值。
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">
您好,我在输入中插入值有问题
你可能会问为什么我把按键输入框用JS? 我有编译程序 emscripten,它有驱动程序输入,可以拦截页面上其他元素的所有按键、按键、按键和 returns 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">
只需将新文本添加到您已经(以错误的方式)定义为 data
而未使用的字段中的现有文本中
当您调用输入的方法 val
时,您应该使用大括号 jQuery(this).val()
而不是 jQuery(this).val
因为这是 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(data + text[i])//<<< here
return false; });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="search-area228">
您的代码几乎没有错误。
您将输入的值设置为当前键,而不是将其附加到输入的当前值。
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">