Как добавить данные формы HTML в ссылку mailto - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать форму, которая позволяет пользователю вводить свое имя и фамилию, а затем отправлять ее.Я хочу взять имя и фамилию, которые они ввели, и поместить эти данные в ссылку 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>

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Во-первых, вы забыли скобки после имени функции (как указано в Erl V).Функции всегда имеют эти скобки.Вы можете использовать их, чтобы задать параметры функций.Подробнее о функциях здесь .

Во-вторых, вы забыли знак плюс в объединенной строке параметра window.open.Я удалил последнюю часть, потому что она была ненужной.

В-третьих, вы использовали get.getElementsByName("firstname").value вместо document.getElementsByName("firstname")[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>
0 голосов
/ 04 октября 2018

Попробуйте это

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>

Кстати, ниже приведены ошибки в вашем коде.

:"+lname""); /*unwanted "" at the end*/

Здесь у вас есть несколько исправлений:

get.getElementsByName("firstname").value

Этоне get., а document., также getElementsByName() вернет вам NodeList вместо одного HTML-элемента, поэтому вам также нужно будет использовать индекс, чтобы в итоге вы получили document.getElementsByName("firstname")[0].value

0 голосов
/ 04 октября 2018

Отредактировано : очищен ваш 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...