JavaScript函数赢得';不管我怎么努力都不行

JavaScript函数赢得';不管我怎么努力都不行,javascript,html,function,Javascript,Html,Function,我是JavaScript的新手,不好意思说我搞不懂这个。我试图创建一个网站,解析名字和姓氏输出电子邮件地址。我将onclick()函数移到onload()之外,这只会产生更多问题。任何帮助都将不胜感激。我为我的无知道歉 HTML: 您可以在JavaScript中尝试以下代码: window.onload = function() { //alert("Just finished loading the webpage in the window."); }

我是JavaScript的新手,不好意思说我搞不懂这个。我试图创建一个网站,解析名字和姓氏输出电子邮件地址。我将onclick()函数移到onload()之外,这只会产生更多问题。任何帮助都将不胜感激。我为我的无知道歉

HTML:


您可以在JavaScript中尝试以下代码:

window.onload = function() {
  //alert("Just finished loading the webpage in the window.");

  
  
}

document.getElementById("genemail").onclick = processForm(){
 // alert("Just finished loading the webpage in the window.");
  var firstname = document.getElementById("fname").value;
  var lastname = document.getElementById("lname").value;

  console.log(firstname + " " + lastname);

  var label = document.getElementsByClassName("outputArea");

  label[0].innerHTML = "Your Email Address: " + firstname + "." + lastname + "@gmail.com";
  
  document.getElementById("by-line").innerHTML = document.getElementById("by-line").innerHTML + " / Created By: Tony Vance";
}
document.getElementById("genemail").addEventListener("click", processForm, false);
function processForm(){
 alert("Just finished loading the webpage in the window.");
   var firstname = document.getElementById("fname").value;
  var lastname = document.getElementById("lname").value;

  console.log(firstname + " " + lastname);

  var label = document.getElementsByClassName("outputArea");

  label[0].innerHTML = "Your Email Address: " + firstname + "." + lastname + "@gmail.com";
  
  document.getElementById("by-line").innerHTML = document.getElementById("by-line").innerHTML + " / Created By: Tony Vance";
}

document.getElementById(“genemail”).onclick=processForm(){
是问题所在,您不能在此处命名函数
processForm
。如果您将其更改为关键字
function
,则效果很好,请参阅此提琴:

如果您想将函数直接分配给
onclick
事件,则应使用匿名函数:

document.getElementById("genemail").onclick = function(){
 // alert("Just finished loading the webpage in the window.");
  var firstname = document.getElementById("fname").value;
  var lastname = document.getElementById("lname").value;

  console.log(firstname + " " + lastname);

  var label = document.getElementsByClassName("outputArea");

  label[0].innerHTML = "Your Email Address: " + firstname + "." + lastname + "@gmail.com";
  
  document.getElementById("by-line").innerHTML = document.getElementById("by-line").innerHTML + " / Created By: Tony Vance";
}
如果不想使用匿名函数,且函数无参数,则单独定义函数并分配:

function processForm(){
 // alert("Just finished loading the webpage in the window.");
  var firstname = document.getElementById("fname").value;
  var lastname = document.getElementById("lname").value;

  console.log(firstname + " " + lastname);

  var label = document.getElementsByClassName("outputArea");

  label[0].innerHTML = "Your Email Address: " + firstname + "." + lastname + "@gmail.com";
  
  document.getElementById("by-line").innerHTML = document.getElementById("by-line").innerHTML + " / Created By: Tony Vance";
}

document.getElementById("genemail").onclick = processForm; 

现在效果很好。谢谢!感谢您的全面回复,现在效果很好!
function processForm(){
 // alert("Just finished loading the webpage in the window.");
  var firstname = document.getElementById("fname").value;
  var lastname = document.getElementById("lname").value;

  console.log(firstname + " " + lastname);

  var label = document.getElementsByClassName("outputArea");

  label[0].innerHTML = "Your Email Address: " + firstname + "." + lastname + "@gmail.com";
  
  document.getElementById("by-line").innerHTML = document.getElementById("by-line").innerHTML + " / Created By: Tony Vance";
}

document.getElementById("genemail").onclick = processForm;