通过按键事件触发功能时无法从 IE 中的文本框获取值
Cannot Get Value From Text box in IE When Triggering Function Via Key Event
我的网站上有一个搜索框,可以通过单击搜索按钮或在搜索框处于焦点状态时按回车键来使用。我遇到的问题 只发生在 Internet Explorer 中(不幸的是我必须支持它)。
单击按钮执行搜索时,一切都按计划进行。 但是,当按回车 时,我遇到了一些奇怪的行为。 在调试 javascript 时,我可以看到搜索查询是空的。 这是我正在使用的所有 javascript,单击按钮和回车都可以使用同样的搜索功能。
$(document).ready(function () {
var input = document.getElementById("txtSearch");
if (input) {
input.addEventListener("keyup", function (event) {
//if the user hits enter
if (event.keyCode == 70) {
event.preventDefault();
search();
}
});
}
})
function search() {
var searchstring = $('#txtSearch').dxTextBox('instance').option('value');
//only search if there is a value in the text box
if (searchstring != "") {
var url = window.location.origin + "/Search" + "?searchquery=" + encodeURIComponent(searchstring);
window.location.href = url;
}
}
搜索功能的第一行就是问题所在。点击回车键后,该函数被触发,搜索字符串被设置为空字符串,而不是文本框中的内容。
您的事件监听器中已经有该事件。我建议您将 event.target.value 传递给您的搜索功能。这使它更具功能性。拥有一个获取自己信息的函数是一种糟糕的模式。
总结:
- 从您的活动中获取价值:event.target.value
- 将其作为参数传递给搜索
- 在函数中使用参数而不是获取搜索字符串
我的网站上有一个搜索框,可以通过单击搜索按钮或在搜索框处于焦点状态时按回车键来使用。我遇到的问题 只发生在 Internet Explorer 中(不幸的是我必须支持它)。
单击按钮执行搜索时,一切都按计划进行。 但是,当按回车 时,我遇到了一些奇怪的行为。 在调试 javascript 时,我可以看到搜索查询是空的。 这是我正在使用的所有 javascript,单击按钮和回车都可以使用同样的搜索功能。
$(document).ready(function () {
var input = document.getElementById("txtSearch");
if (input) {
input.addEventListener("keyup", function (event) {
//if the user hits enter
if (event.keyCode == 70) {
event.preventDefault();
search();
}
});
}
})
function search() {
var searchstring = $('#txtSearch').dxTextBox('instance').option('value');
//only search if there is a value in the text box
if (searchstring != "") {
var url = window.location.origin + "/Search" + "?searchquery=" + encodeURIComponent(searchstring);
window.location.href = url;
}
}
搜索功能的第一行就是问题所在。点击回车键后,该函数被触发,搜索字符串被设置为空字符串,而不是文本框中的内容。
您的事件监听器中已经有该事件。我建议您将 event.target.value 传递给您的搜索功能。这使它更具功能性。拥有一个获取自己信息的函数是一种糟糕的模式。
总结:
- 从您的活动中获取价值:event.target.value
- 将其作为参数传递给搜索
- 在函数中使用参数而不是获取搜索字符串