Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 单击链接时停止模糊事件_Javascript_Jquery - Fatal编程技术网

Javascript 单击链接时停止模糊事件

Javascript 单击链接时停止模糊事件,javascript,jquery,Javascript,Jquery,我试图使用JQuery事件在文本框中隐藏ssn或其他敏感信息 $('#txtMasked').keyup(函数(e){ e、 预防默认值(); var val=此.value.replace(/\D/g'); var newVal=''; 如果(值长度>4){ this.value=val; } 如果((val.length>3)和(&(val.length5){ newVal+=val.substr(0,3)+'-'; newVal+=val.substr(3,2)+'-'; val=val

我试图使用JQuery事件在文本框中隐藏ssn或其他敏感信息

$('#txtMasked').keyup(函数(e){
e、 预防默认值();
var val=此.value.replace(/\D/g');
var newVal='';
如果(值长度>4){
this.value=val;
}
如果((val.length>3)和(&(val.length<6)){
newVal+=val.substr(0,3)+'-';
val=val.substr(3);
}
如果(值长度>5){
newVal+=val.substr(0,3)+'-';
newVal+=val.substr(3,2)+'-';
val=val.substr(5);
}
newVal+=val;
this.value=newVal;
});
$('#lnk')。单击(函数(e){
if($('#txtMasked').attr('type')=='password'){
$('#txtMasked').attr('type','text');
$(this.text('Hide');
$(this.prop('title','Hide');
}否则{
$('#txtMasked').attr('type','password');
$(this.text('Show');
$(this.prop('title','Show');
}
返回false;
})
var显示=功能(ev){
$('#txtMasked').attr('type','text');
$('#lnk').text('Hide');
$('lnk').prop('title','Hide');
},
隐藏=功能(ev){
$('#txtMasked').attr('type','password');
$('lnk')。文本('Show');
$('lnk').prop('title','Show');
};
$(#txtMasked')。焦点(show);
$('#txtMasked').blur(隐藏);
当焦点事件被触发时,文本将被解除屏蔽,并且可以通过触发模糊或链接事件将其屏蔽

触发焦点并单击链接时,也会触发模糊。因此,它混淆了链接单击事件,因此文本永远不会被屏蔽

我在互联网上搜索过,但我找不到一种方法来阻止这两个事件同时触发

我试过了,但在我的情况下不起作用

请问有人能帮忙吗


感谢所有帮助

请尝试此代码,它将在单击链接时停止模糊事件

$('#lnk').click(function (e) {
     e.stopImmediatePropagation();
     $(this).off("blur");
    if ($('#txtMasked').attr('type') === 'password') {

        $('#txtMasked').attr('type', 'text');
        $(this).text('Hide');
        $(this).prop('title', 'Hide');
    } 
    else  {
        $('#txtMasked').attr('type', 'password');
        $(this).text('Show');
        $(this).prop('title', 'Show');
    }
    return false;
})
在发生模糊事件时触发
hide()
之前,可以检查#lnk是否是聚焦元素

$('#txtMasked').blur(function() {
        if (!$("#lnk")==$(document.activeElement)) {
            hide();
        }
    });
试试这个

$('#txtMasked').keyup(函数(e){
e、 预防默认值();
var val=此.value.replace(/\D/g');
var newVal='';
如果(值长度>4){
this.value=val;
}
如果((val.length>3)和(&(val.length<6)){
newVal+=val.substr(0,3)+'-';
val=val.substr(3);
}
如果(值长度>5){
newVal+=val.substr(0,3)+'-';
newVal+=val.substr(3,2)+'-';
val=val.substr(5);
}
newVal+=val;
this.value=newVal;
});
$('#lnk')。单击(函数(e){
if($('#txtMasked').attr('type')=='password'){
$('#txtMasked').attr('type','text');
$(this.text('Hide');
$(this.prop('title','Hide');
}否则{
$('#txtMasked').attr('type','password');
$(this.text('Show');
$(this.prop('title','Show');
}
返回false;
})
var显示=功能(ev){
$('#txtMasked').attr('type','text');
$('#lnk').text('Hide');
$('lnk').prop('title','Hide');
},
隐藏=功能(ev){
$('#txtMasked').attr('type','password');
$('lnk')。文本('Show');
$('lnk').prop('title','Show');
};
$(#txtMasked')。焦点(show);
$('#txtMasked').blur(函数(e){
试一试{
如果(e.relatedTarget.id!=“lnk”){
隐藏();
}
}捕获(错误){
隐藏();
}
});

将以下代码片段添加到脚本中

 var is_blur=false;
 $(document).click(function(e){
    if(e.target.id!='lnk'){
      is_blur=false; 
    }
 });
将“lnk”单击事件更改为以下内容

$('#lnk').click(function (e) {
    if(is_blur){
      is_blur=false;  
      return;
    }                

    if ($('#txtMasked').attr('type') === 'password') {
        $('#txtMasked').attr('type', 'text');
        $(this).text('Hide');
        $(this).prop('title', 'Hide');
    } else {
        $('#txtMasked').attr('type', 'password');
        $(this).text('Show');
        $(this).prop('title', 'Show');
    }
    return false;
})
hide = function (ev) {
         $('#txtMasked').attr('type', 'password');
         $('#lnk').text('Show');
         $('#lnk').prop('title', 'Show');
         is_blur=true;
     };
将隐藏功能更改为以下内容

$('#lnk').click(function (e) {
    if(is_blur){
      is_blur=false;  
      return;
    }                

    if ($('#txtMasked').attr('type') === 'password') {
        $('#txtMasked').attr('type', 'text');
        $(this).text('Hide');
        $(this).prop('title', 'Hide');
    } else {
        $('#txtMasked').attr('type', 'password');
        $(this).text('Show');
        $(this).prop('title', 'Show');
    }
    return false;
})
hide = function (ev) {
         $('#txtMasked').attr('type', 'password');
         $('#lnk').text('Show');
         $('#lnk').prop('title', 'Show');
         is_blur=true;
     };
希望这些能帮助你


这不起作用,需要通过触发单击事件来停止模糊事件。好的,让我再次检查