作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的文本字段,我正在使用自动完成功能。
<input type="text" name="state" id="state" placeholder="State" maxlength="25" required onkeypress="return nospecialCharacters(event)"/>
$("#state").autocomplete({
source: function(request, response) {
var statevalue = $.trim($("#state").val());
if (statevalue) {
$.ajax({
url: url + 'eee',
dataType: 'jsonp',
jsonp: false,
timeout: 6000,
jsonpCallback: 'jsonCallback',
delay: 100,
success: function(data) {
$("#state").empty();
response(data);
}
});
}
},
minLength: 2,
appendTo: "#state_result",
select: function (event, ui) {
$("#state").val(ui.item.label);
$("#city").focus();
return false;
},
close: function(event, ui)
$(this).data().term = null;
});
一切正常,但我面临的问题是,当在文本输入上进行某些选择并尝试执行退格键时,它不会删除任何字符(我猜它发出了请求,所以它继续更新框)
您能告诉我如何解决这个问题吗?
这是我在按键时调用的函数
function nospecialCharacters(thi, dec)
{
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (((keycode >= 65) && (keycode <= 90)) || ((keycode >= 48) && (keycode <= 57)) || ((keycode >= 97) && (keycode <= 122)) || keycode == 32 || keycode == 45 || keycode == 47 || keycode == 92)
{
return true;
}
else
{
return false;
}
}
最佳答案
也许您的脚本未检测到退格键
。
尝试这样做,
onkeydown="return nospecialCharacters(event)"
而不是
onkeypress="return nospecialCharacters(event)"
keypress
事件(在其原始 IE 形式以及 Safari/Chrome 中)是关于将实际字符添加到文本字段的事件。由于 backspace
键不会向字段值添加新字符,因此不会导致 keypress
事件。
还在您的 nospecialCharacters()
函数中,添加 keycode == 8
以允许 退格
,
if (((keycode >= 65) && (keycode <= 90)) || ((keycode >= 48) && (keycode <= 57)) || ((keycode >= 97) && (keycode <= 122)) || keycode == 32 || keycode == 45 || keycode == 47 || keycode == 92 || keycode == 8)
{
return true;
}
else
{
return false;
}
关于jquery - Jquery ui 自动完成文本框上的退格键按下不会删除上面的任何字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31011247/
我是一名优秀的程序员,十分优秀!