Javascript 在模糊后单击';行不通

Javascript 在模糊后单击';行不通,javascript,jquery,html,Javascript,Jquery,Html,我正在编辑文本框并直接点击按钮,它不会触发按钮的点击事件 有许多类似的帖子建议使用onmousedown而不是onclick,但我认为这不是解决办法。当我在做一些关于文本输入的模糊事件的工作时,点击按钮进行验证onmousedown将在模糊之前调用,这意味着我无法在模糊之后执行验证。我只想在模糊之后打电话给click。有什么办法吗 HTML <input type="text" onblur="txtblr()"> <input type="button" onclick="b

我正在编辑文本框并直接点击按钮,它不会触发按钮的点击事件

有许多类似的帖子建议使用
onmousedown
而不是
onclick
,但我认为这不是解决办法。当我在做一些关于文本输入的模糊事件的工作时,点击按钮进行验证<代码>onmousedown将在模糊之前调用,这意味着我无法在模糊之后执行验证。我只想在模糊之后打电话给click。有什么办法吗

HTML

<input type="text" onblur="txtblr()">
<input type="button" onclick="btnclk()" value="button">

我只想在模糊之后打电话给click

你是

函数txtblr(){
console.log('blur');
}
函数btnclk(){
console.log('click');
}

我不确定我是否理解你的问题。听起来您想要的是在
元素上注册
模糊事件时调用单击处理程序中使用的函数(即
文本
-type
)。如果是这种情况,请尝试以下方法:

window.addEventListener('DOMContentLoaded', function() {
  document
    .querySelector('input[type="text"]')
    .addEventListener('blur', btnclk);
});
``` 我不确定我是否理解你的问题。听起来您想要的是在
元素上注册
模糊事件时调用单击处理程序中使用的函数(即
文本
-type
)。如果是这种情况,请尝试以下方法:

window.addEventListener('DOMContentLoaded', function() {
  document
    .querySelector('input[type="text"]')
    .addEventListener('blur', btnclk);
});

您可以在如下所示的模糊中调用您的单击功能…因此,一旦文本框被模糊,您的模糊操作就完成了,您的单击操作也通过调用单击功能完成了

Javascript

function txtblr(){
if(confirm('relly?')) {
    console.log('blur');
  }
 else {
    console.log('dont blur');
  }
}

function btnclk(){
    console.log('click');
}
function txtblr(){
 alert('blur');
 btnclk();
}

function btnclk(){
 alert('click');
}
函数txtblr(){
如果(确认('relly?')){
console.log('blur');
}
否则{
console.log('donblur');
}
}
函数btnclk(){
txtblr();
console.log('click');
}


将所有相关代码包括到OP@guradio更新的示例代码,如果您看到它似乎工作正常,则调用btnclk();内部txtblr()@为什么?我不希望每次从文本框中删除鼠标时都触发验证。+1但在我的项目中它不起作用。我发现我正在模糊中使用确认框。现在我用确认框更新了我的问题。Javascript警报和确认会阻止浏览器处理任何其他内容,您应该尽可能避免使用它们。检查更新后的答案,了解一些解决方法。我使用的是确认,而不是警报。除非用户通过确认,否则不应执行单击。这样,它就不起作用了:(\n这两个事件是完全独立的。我不必每次单击都调用blur。