3

我在表单中使用 getElementById 时遇到问题。我尝试了几种方法都没有运气。我基本上需要表单来验证名字和姓氏字段是否都已填写,并显示一个显示名称的弹出框。

下面是我尝试过的代码。我在我的 javascript 中尝试了 2 种不同的方法,但我不确定我错过了什么。

<form name="form" id="form" method="post" action="">  

    <p class="FirstName">  
        <label for="FirstName">First Name:</label>
    </p>
    <p>
        <input name="FirstName" type="text" id="FirstName" />  
    </p>  

    <p class="LastName">  
        <label for="LastName">Last Name:</label></p>
        <p>
        <input name="LastName" type="text" id="LastName" />  
    </p>

    <p class="submit">  
        <input name="getName" type="button" id="getName" value="Get Name" onClick=”getName();" />  
    </p>  
</form>
var getName = function () {
    if (document.getElementById("FirstName").value == "" || document.getElementById("LastName").value == "") {
        return ("Please enter a first name and a last name.");
    } else {
        var FullName = document.getElementById("FirstName").value + ' ' + document.getElementById("LastName").value;
        return FullName;
    }
}

function getName() {
    var FullName = document.getElementById('FirstName');
    document.getElementById('LastName');
    if (FullName.value != "") 
        alert(FullName.value)
    else 
        alert("Please enter first and last name")
}
4

2 回答 2

4

您尝试的第一种方法是正确的。

问题是,您没有将onclick事件绑定到函数。

您在标签中声明getName函数,在head标签之前解释body

getName但是你在声明按钮时覆盖inputidname设置为getName.

例如,您可以将其 id 和名称更改submitButton为。您还可以将函数声明移动到body标记的末尾,或将其包装在onLoad方法中。

我将呼叫包装getName在警报中以查看结果(alert(getName())

查看 jsFiddle:http: //jsfiddle.net/zpNSv/1/

<form name="form" id="form" method="post" action="">  
    <p class="FirstName">  
        <label for="FirstName">First Name:</label>
    </p>
    <p>
        <input name="FirstName" type="text" id="FirstName" />  
    </p>  
    <p class="LastName">  
        <label for="LastName">Last Name:</label>
    </p>
    <p>
        <input name="LastName" type="text" id="LastName" />  
    </p>
    <p class="submit">  
        <input name="submitButton" type="button" id="submitButton" value="Get Name" onClick="alert(getName())" />
    </p>  
 </form>

和 JS

function getName() {
    var FirstName = document.getElementById("FirstName"),
        LastName = document.getElementById("FirstName");
    if (FirstName.value == "" ||   document.getElementById("LastName").value == "")
    {
        return ("Please enter a first name and a last name.");
    }
    else
    {
        var FullName = FirstName.value + ' ' + LastName.value;
        return FullName;
    }
}
于 2013-04-07T16:28:09.337 回答
0

仔细看看这一行,你对最后一条语句没有做任何事情

var FullName = document.getElementById('FirstName');  document.getElementById('LastName');

你有 2 个 getName。只有一个人能活。

function getName(){
 var firstName = document.getElementById("firstName").value;
 var lastName= document.getElementById("lastName").value;

  if(firstName === "" || lastName === ""){
    alert("You need to fullfield both First Name and Last Name");
  }
}else{alert("This work.");}
于 2013-04-07T16:23:22.203 回答