为什么这两个函数不想运行?

时间:2014-02-09 11:36:19

标签: javascript jquery html

我真的不知道为什么这两个功能 - 离开()& do() - 不要跑!

    function leave() 
    {
        var x = document.getElementById("x");
        if(x.value == "")
        {
            alert("please enter your name");
            x.focus();
        }
    }

    function do()
    {
        var y = document.getElementById("y");
        if (y.value = "enter your name here")
        {
            alert("enter your last name");
            y.focus();
            y.select();                
        }
    }

这是我的代码:http://jsfiddle.net/BsHa2

提前致谢

4 个答案:

答案 0 :(得分:1)

你有3个问题:

1-在您的jsfiddle选项中,您已选择将所有代码包装在onLoad中,因此这些函数不在全局上下文中,您可以像我在下面的代码中那样修复它。 / p>

2-此行将值设置为y input的值:

if (y.value = "enter your name here")

将其更改为

if (y.value == "enter your name here")

3-另一个问题是do是一个保留字,不要使用保留字,尽管它可以在某些浏览器中执行您想要的操作。

window.leave = function leave() 
{
    var x = document.getElementById("x");
    if(x.value == "")
    {
        alert("please enter your name");
        x.focus();
    }
}

window.check = function check()
{
    var y = document.getElementById("y");
    if (y.value = "enter your name here")
    {
        alert("enter your last name");
        y.focus();
        y.select();                
    }
}

答案 1 :(得分:0)

首先do是关键字,因此您无法将其用作方法名称 - 将其重命名为check

内联事件hadndlers的第二个方法必须在全局范围内 - 在小提琴的左侧面板的第二个下拉列表中选择body / head

演示:Fiddle

答案 2 :(得分:0)

do是保留关键字。您不能将其用作函数名称。将其重命名为其他内容。

其次,必须在全局范围内定义内联事件处理程序。在你的小提琴中你必须选择 Wrap in head选项

第三,=是赋值运算符,用于比较使用=====,行(y.value = "enter your name here")中的错误

使用

function do1()

DEMO

答案 3 :(得分:0)

do是保留关键字。您不能将其用作函数名称。

另外,你在这里犯了错误:

if (y.value = "enter your name here")

你需要检查是否平等:

if (y.value === "enter your name here")

顺便说一句,您应该考虑为变量提供有意义的名称并使用不显眼的事件处理程序:

<form id="myForm">
    <label for="firstName">First Name:</label>
    <input type="text" name="input" id="firstName" size="20">
    <br/>
    <label for="lastName">Last Name:</label>
    <input type="text" id="lastName" size="20" value="enter your name here">
    <input type="button" id="check" value="Check!">
</form>

var firstName = document.getElementById("firstName"),
    lastName = document.getElementById("lastName"),
    checkButton = document.getElementById("check");

firstName.onblur = function(){
  if (this.value === ""){
    alert("please enter your name");
    this.focus();
  }  
}

check.onclick = function(e){
    e.preventDefault();
    if (lastName.value === "enter your name here") {
      alert("enter your last name");
      lastName.focus();
    }
}

<强> fiddle