Javascript 如何将HTML表单数据添加到mailto链接

Javascript 如何将HTML表单数据添加到mailto链接,javascript,html,forms,Javascript,Html,Forms,我正在尝试创建一个表单,允许用户键入他们的名字和姓氏,然后提交它。我想记下他们输入的名字和姓氏,并将这些数据放到mailto链接中。下面的代码就是我所拥有的。我做错了什么 <div class="form"> <form> <input type="text" name="firstname" placeholder="First Name"> <input type="text" name="lastname"

我正在尝试创建一个表单,允许用户键入他们的名字和姓氏,然后提交它。我想记下他们输入的名字和姓氏,并将这些数据放到mailto链接中。下面的代码就是我所拥有的。我做错了什么

<div class="form">
    <form>
        <input type="text" name="firstname" placeholder="First Name">
        <input type="text" name="lastname" placeholder="Last Name">
        <button type="submit" class="submit" onclick="submitForm()"><i class="material-icons md-24">play_circle_filled</i></button>
    </form>
    <script>
    function submitForm{
        var fname = get.getElementsByName("firstname").value;
        var lname = get.getElementsByName("lastname").value;
        window.open("mailto:someone@example.com?subject=Test%20Email&body=First%20Name:%20"+fname+"%20Last%20Name:"+lname"");
    }
    </script>
</div>
编辑:清理你的javascript

function submitForm(){
    var fname = document.getElementsByName("firstname").value;
    var lname = document.getElementsByName("lastname").value;
    window.open("mailto:someone@example.com?subject=Test%20Email&body=First%20Name:%20"+fname+"%20Last%20Name:"+lname);
}

首先,您忘记了函数名后面的括号,如Erl V所述。 Funktion总是有这些括号。您可以使用它们来指定函数参数。了解更多有关函数的信息

其次,在window.open参数的连接字符串中忘记了加号。 我删除了最后一部分,因为它是不必要的

第三,您使用的是get.getElementsByNamefirstname.value而不是document.getElementsByNamefirstname[0].value

这是经过测试的,应该可以工作:

<form>
    <input type="text" name="firstname" placeholder="First Name">
    <input type="text" name="lastname" placeholder="Last Name">
    <button type="submit" class="submit" onclick="submitForm()">Submit</button>
</form>

<script>
function submitForm(){
    var fname = document.getElementsByName("firstname")[0].value;
    var lname = document.getElementsByName("lastname")[0].value;
    window.open("mailto:someone@example.com?subject=Test%20Email&body=First%20Name:%20"+fname+"%20Last%20Name:"+lname);
}
</script>
试试这个

function submitForm(form) {
  window.open("mailto:someone@example.com?subject=Test%20Email&body=First%20Name:%20" + form.firstname.value + "%20Last%20Name:" + form.lastname.value);
  return false; /* cancel submit or else page reloads */
}

<form onsubmit="return submitForm(this);">
  <input type="text" name="firstname" placeholder="First Name" />
  <input type="text" name="lastname" placeholder="Last Name" />
  <button type="submit" class="submit"><i class="material-icons md-24">play_circle_filled</i></button>
</form>
在这里,您有多个更正:

get.getElementsByName("firstname").value

这是不可能的。取而代之的是document.,getElementsByName将返回NodeList,而不仅仅是一个HTML元素,因此同样需要使用index,因此最终得到的是document.getElementsByNamefirstname[0]。value

没有修复它。@KevinLong还删除了脚本中的最后一个双qoute。@KevinLong,我编辑了我的答案。在脚本中发现许多语法错误
get.getElementsByName("firstname").value