聚焦函数运行的表单域(新手)

时间:2015-04-02 13:45:45

标签: javascript

我试图在一个触发的表单字段上运行验证函数后关注表单字段" onblur"该领域的事件。我想要做的就是把焦点放回到那个领域,如果它没有效但它似乎没有做到。我在网上寻找答案但无法找到解决方案。

HTML:

<input type="text" id="name" name="name" value="" onblur="validateName();"/>

JavaScript的:

function validateName() {
        var name = document.getElementById("name");
          if (name.value==""||!isNaN(name.value)){
            alert("Please enter a valid name.  You have left the field blank or entered a number.");
            document.getElementById("name").focus();
          }

      };//END validateName

document.getElementById("name").focus();未按预期工作。

1 个答案:

答案 0 :(得分:2)

代码对我有用,但为了使它更“干净”,我为你做了一些改动:

HTML: 您可以使用函数调用(this)“传递”元素,这样,我们就不必在函数本身中查找它了。

<input type="text" id="name" name="name" value="" onblur="validateName(this)"/>

JavaScript的: 模糊的元素被传递并存储在element中,我们直接在其上调用“focus()”函数。

function validateName(element) {

      if (element.value==""||!isNaN(element.value)){
        alert("Please enter a valid name.  You have left the field blank or entered a number.");
        element.focus();
      }

  };//END validateName