Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript input_text_1.onblur=输入_text_2.select();_Javascript_Dom_Xhtml - Fatal编程技术网

Javascript input_text_1.onblur=输入_text_2.select();

Javascript input_text_1.onblur=输入_text_2.select();,javascript,dom,xhtml,Javascript,Dom,Xhtml,在firefox中,我制作了一个网页,有两个输入文本元素:input_text_1和input_text_2。它们的行为类似于密码验证:如果它们的内容不同,即当输入文本2的onblur事件被激活时,onblur的处理程序将发出警报,然后选择输入文本1的所有文本 事实上,这并不容易实现,因为我认为事件链是不确定的:可能,input_text_1选择了文本,然后通过一些点击失去了焦点。因此,我只是对onblur的input_text_1处理程序进行了如下修改: setTimeoutdocument.

在firefox中,我制作了一个网页,有两个输入文本元素:input_text_1和input_text_2。它们的行为类似于密码验证:如果它们的内容不同,即当输入文本2的onblur事件被激活时,onblur的处理程序将发出警报,然后选择输入文本1的所有文本

事实上,这并不容易实现,因为我认为事件链是不确定的:可能,input_text_1选择了文本,然后通过一些点击失去了焦点。因此,我只是对onblur的input_text_1处理程序进行了如下修改:

setTimeoutdocument.getElementById'input_text_1'。选择,100


有更优雅的解决方案吗?

以下代码在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 );

您可以试试它

是的,但问题是关于FireFox的。解决方案已更新,可用于跨浏览器。它工作正常,除了基于WebKit的浏览器,input1并不总是关注焦点。