我想在移动键盘上按下“go”按钮后从搜索文本字段中获取书面文字。
<input id="search" value="" type="search" name="search">
这是javascript代码。
$("input[data-type='search']").keyup(function (e) {
alert("pressed");
var code = (e.keyCode ? e.keyCode : e.which);
alert(code);
if (code == 13) { //for "go" key
//alert("pressed");
alert($(this).val());
$(this).trigger("keyup");
}
});
我无法在搜索字段中输入输入的文字。我在logcat中得到“unsizeChanged:Enter,Ignore this event”。我希望成功测试的解决方案。谢谢。
答案 0 :(得分:1)
我得到了解决方案。我通过以下方式修改我的代码:
$(document).on("pagecreate", function() { /* or pageinit for jQM 1.3 */
$("[data-type='search']").on("keyup", function(e) {
var code = e.keyCode || e.which;
var text;
if (code == 13) {
text = $(this).val();
alert(text);
}
else {
return 1; //this section avoid alert popouts, when other keys are pressed..
}
});
});
答案 1 :(得分:0)
我认为你应该稍微改变你的选择器:
$("input[data-type='search']").keyup(function (e) {
改为:
$("input[type='search']").keyup(function (e) { // type=search
或者如果您的元素的ID是唯一的,那么您可以尝试:
$("#search").keyup(function (e) { // as id is unique so change the selector
alert("pressed");
var code = e.keyCode || e.which; // instead of ternary use it this way.
alert(code);
if (code === '13') { //use "===" equals for strict check.
//alert("pressed");
alert($(this).val());
//$(this).trigger("keyup"); // <----this should not be here so remove it.
}
});
答案 2 :(得分:0)
据我所知,你想进入行动
你应该改变这段代码
if (code == 13) { //for "go" key
//alert("pressed");
alert($(this).val());
$(this).trigger("keyup");
}
并阻止对文本字段执行默认操作并触发单击“转到”按钮
if (code == 13) { //for "go" key
event.preventDefault(); // prevent default action if enter is pressed
//alert("pressed");
alert($(this).val());
//$(this).trigger("keyup"); //trigger click on button instead
$('#go-button').trigger('click');
}
答案 3 :(得分:0)
软键盘按钮,例如箭头和&#34;完成&#34;或&#34; Go&#34;按钮没有keyCode
。只要键盘处于活动状态,即使blur
事件也不会触发它们。
或者,您可以收听focusout
事件,该事件会在元素失去焦点并且键盘处于激活状态时触发。
$(document).on("pagecreate", function () { /* or pageinit for jQM 1.3 */
$("[data-type=search]").on("focusout", function () {
alert($(this).val());
});
});
根据您的评论,Android的键盘按钮为keyCode
。您只需绑定pagecreate
上相当于.ready()
的事件。
$(document).on("pagecreate", function() {
$("[data-type='search']").on("keyup", function(e) {
var code = e.keyCode || e.which; if (code == 13) {
alert($(this).val());
}
});
});