在firefox中,我创建了一个网页,有两个输入文本元素: input_text_1 和 input_text_2 。它们的行为类似于密码验证:如果它们的内容不同,即当 onblur 事件 input_text_2 被激活时,onblur的处理程序将警告某事然后选择 input_text_1 的所有文字。
实际上,这并不容易实现,因为我认为事件链不能得到保证:也许,input_text_1选择了文本然后通过一些点击失去焦点。所以,我只是修改了onblur的input_text_1处理程序,如下所示:
setTimeout("document.getElementById('input_text_1').select()", 100);
有更优雅的解决方案吗?
答案 0 :(得分:0)
以下代码在FireFox / IE / Opera / Safari / Chrome中运行良好,但基于WebKit的浏览器并不总是将焦点放在输入中:
var blurHandler = function() {
var input1 = document.getElementById('input1');
if( this.value !== input1.value ) {
alert( 'Passwords are not equal' );
if( input1.selectionStart ) {
input1.selectionStart = 0;
input1.selectionEnd = input1.value.length;
}
input1.focus();
if( input1.select ) input1.select();
}
};
var input2 = document.getElementById('input2');
if( input2.addEventListener )
input2.addEventListener( 'blur', blurHandler, true );
else
input2.attachEvent( 'onblur', blurHandler );