onBlur事件函数在Vanilla Javascript中触发页面加载

时间:2013-10-28 16:23:18

标签: javascript events javascript-events blur onblur

我有一个基本的验证函数和 addEventListener ,可以附加到 select 元素。现在,不仅函数在事件发生期间不会触发,而且它会在页面加载时触发。能帮我解决一下原因吗?

元素是:

<select name="VisitSchedLocation" id="VisitSchedLocation" size="1">
  <option value="">Choose a location for this visit</option>
  <option value="1">Location 1</option>
  ...
</select>

addEventListener 是:

document.getElementById('VisitSchedLocation').addEventListener('blur', validateVisitSchedLocation());

最后,功能

function validateVisitSchedLocation() {
  if (VisitSchedLocation.options[VisitSchedLocation.selectedIndex].value == '') {
    alert('Location must be selected!');
    return false;
  };
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

Working DEMO

您正在调用/调用该函数,而不是将其附加到事件:

document.getElementById('VisitSchedLocation').addEventListener('blur', validateVisitSchedLocation());

而是这样做( 没有括号 ):

document.getElementById('VisitSchedLocation').addEventListener('blur', validateVisitSchedLocation);