onblur()事件停止onclick()事件

时间:2018-08-03 07:24:45

标签: javascript jquery

我有一个文本框,其中包含一个onblur()事件和一个带有onclick()的按钮。 但是,当我在文本框中键入内容时,如果不单击光标离开文本框的位置,则仅单击按钮会触发onb​​lur()事件。它将停止按钮的onclick事件。

function onblur() {
  alert("onblur");
}

function fnValidate() {
  alert("Validate");
}
<input type="text" id="txtUserName" onblur="fnUserChange()" class="User_Name" placeholder="User Name">

<button name="button" type="button" class="action_button primary" id="btnsave" onclick="return fnValidate();">Capture User</button>

2 个答案:

答案 0 :(得分:1)

function fnUserChange() {
  console.log("onblur");
}

function fnValidate() {
  console.log("Validate");
}
<input type="text" id="txtUserName" onblur="fnUserChange()" class="User_Name" placeholder="User Name">
<button name="button" type="button" class="action_button primary" id="btnsave" onclick="fnValidate();">Capture User</button>

答案 1 :(得分:1)

正如@JeremyJStarcher在评论中所说,您使用alert的事实会改变焦点,因此会产生假阴性。如果您使用console.log(并且函数名称正确。未定义fnUserChange()。),您的代码将起作用。

function fnUserChange() {
  console.log("onblur");
}

function fnValidate() {
  console.log("Validate");
}
<input type="text" id="txtUserName" onblur="fnUserChange()" class="User_Name" placeholder="User Name">

<button name="button" type="button" class="action_button primary" id="btnsave" onclick="return fnValidate();">Capture User</button>