这是一种奇怪的行为,似乎只发生在 Chrome 和 JQuery UI 中。起初在密码字段中输入字符时,一切正常。但是,如果您尝试退格到输入中的最后一个字母,浏览器将锁定所有客户端操作。此外,如果您尝试突出显示输入的字符并退格,客户端操作将冻结。
只是伸出手看看是否有人遇到过同样的问题,以及他们是如何解决的。
为了解决这个问题,我们在 2+ 独特的页面主页视图上自动打开对话框。这是一个列表页面,因此可以触发它,对于给您带来的不便,我深表歉意,但我无法移除柜台。
这是一种奇怪的行为,似乎只发生在 Chrome 和 JQuery UI 中。起初在密码字段中输入字符时,一切正常。但是,如果您尝试退格到输入中的最后一个字母,浏览器将锁定所有客户端操作。此外,如果您尝试突出显示输入的字符并退格,客户端操作将冻结。
只是伸出手看看是否有人遇到过同样的问题,以及他们是如何解决的。
为了解决这个问题,我们在 2+ 独特的页面主页视图上自动打开对话框。这是一个列表页面,因此可以触发它,对于给您带来的不便,我深表歉意,但我无法移除柜台。
我有同样的问题,但缓存清除没有帮助。我确定这不是 jquery ui 错误。这是我的解决方案:
$('input[type="password"]').on('keydown', function(event){
if (event.which == 8) { //backspace event
event.preventDefault();
$(this).val('');
}
});
此代码在一个退格事件上清除整个密码字段。
我们遇到了同样的问题,并使用了 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('');
}
});
});
这里有同样的问题(FWIW,我正在使用 Twitter Bootstrap,但问题是一样的)。看起来这是由于输入之前有很多内容造成的。将输入放在更高的位置——高于大部分其他内容——对我来说是诀窍。解决方法,但总比没有好。