这是一种奇怪的行为,似乎只发生在Chrome和JQuery UI中。在首先将字符输入密码字段时,一切都正常运行。但是,如果您尝试退格到输入中的最后一个字母,浏览器将锁定所有客户端操作。此外,如果您尝试突出显示输入的字符并退格,则客户端操作会冻结。
只是伸出手来看看是否有人遇到过同样的问题,以及他们是如何解决的。
为了体验这个问题,我们在2个独特的页面主页视图上自动打开对话框。这是一个列表页面,因此可以触发,我为此带来的不便表示歉意,但我无法删除该计数器。
答案 0 :(得分:4)
我遇到了同样的问题,但缓存清除没有帮助。我敢肯定它不是一个jquery ui bug。 这是我的解决方案:
$('input[type="password"]').on('keydown', function(event){
if (event.which == 8) { //backspace event
event.preventDefault();
$(this).val('');
}
});
此代码正在清除一个退格事件的整个密码字段。
答案 1 :(得分:4)
我们遇到了同样的问题,并使用了Benkod的解决方案。 我们对它进行了一些改进,以便处理使用删除键(而不是退格键)删除密码文本的情况。 另一种情况是选择控件中的所有文本并键入新文本以替换它。 这是我们使用的脚本:
Sys.Application.add_load(function() {
$('input[type=password]').keydown(function(event) {
var isAllTextSelected = this.value.slice(this.selectionStart, this.selectionEnd) == this.value;
var isLastChar = $(this).val().length == 1;
if (isAllTextSelected && $(this).val().length > 0) {
$(this).val('');
}
if ((event.which == 8 || event.which == 46) && (isLastChar || isAllTextSelected)) { //backspace event
event.preventDefault();
$(this).val('');
}
});
});
答案 2 :(得分:0)
这里也有同样的问题(FWIW,我正在使用Twitter Bootstrap,但问题是一样的)。 It looks like这是由于在输入之前有很多内容造成的。将输入放在更高的位置 - 高于其他内容的大部分 - 对我来说是个窍门。一个解决方案,但总比没有好。