2016-05-27 3 views
1

Хорошо, я чувствую, что это должно быть очень просто; так что либо я полностью пропустил вопрос о вопросах здесь и других веб-сайтах, которые я прочитал, либо не был задан в том же контексте ....Отправить данные формы в Javascript при отправке

У меня есть элемент ДЕЙСТВИТЕЛЬНО простой формы (см. ниже)

<form> 
    <input type="text" id="searchTerm" /> 
    <input type="submit" value="Submit" id="submitButton" /> 
</form> 

и в основном все, что я хочу сделать, когда кнопка нажата Submit, это имеет значение, введенное в поле text передается в JavaScript Function и консоли вошедшего (на данный момент).

Похоже, его попросили миллион раз, но вопросы, которые я прочитал, не отвечают на мой вопрос (я не думаю).

Редактировать Спасибо за все ответы; самая большая проблема заключается в том, что я пытался ссылаться на функцию во внешнем файле Javascript, который вызывался после элемента формы.

+0

Вы на самом деле пытались использовать javascript или jquery для решения этой проблемы? Можете ли вы показать нам, что вы пробовали, поэтому у нас есть представление о том, что указать вам, что бы решить ваш вопрос? – Zack

+0

'$ (« форма »).submit (function() {// Do stuff}); ' – DBS

+0

просто используйте onsubmit для вызова функции и get/log/dostuff со значениями – LordNeo

ответ

2

Что-то вроде этого?

document.getElementById('theform').onsubmit = function() { 
    console.log(document.getElementById('searchTerm').value); 
    return false; 
}; 

JSFiddle здесь: https://jsfiddle.net/km7rt62v/

Это важно return false; предотвратить поведение по умолчанию в конце вашего обработчика представить, так как в противном случае форма будет размещать и перезагрузите страницу.

Как показали другие, также возможно использовать атрибут html onsubmit элемента формы, это личное предпочтение, но я предпочитаю более чистое разделение между JS и HTML.

Edit: Так как я поступил ответ и вопрос с тегами JQuery, вот JQuery эквивалент:

$('#theform').submit(function() { 
    console.log($('#searchTerm').val()); 
    return false; 
}); 
+0

Спасибо, что сделал это :) именно то, что я хотел – OmisNomis

2

Это простой JavaScript. Вы также можете использовать jQuery.

function checkForm(){ 
 
    console.log(document.getElementById('searchTerm').value); 
 
    return false; 
 
}
<form onsubmit='return checkForm();'> 
 
    <input type="text" id="searchTerm" /> 
 
    <input type="submit" value="Submit" id="submitButton" /> 
 
</form>

+1

Нет необходимости в ярлыке 'javascript:', и вам нужно значение. – mplungjan

+1

e.preventdefault() – avck

+1

return false также работает - и работает над большим количеством браузеров, и это предотвращает дефолт, случай верблюда – mplungjan

0

есть атрибут, который можно использовать под названием onsubmit, когда вы включаете вход с типом представить в вашей форме. Вот некоторая документация http://www.w3schools.com/tags/ev_onsubmit.asp.

Код будет выглядеть примерно так

<form onsubmit="submitForm()"> 
    <input type="text" id="searchTerm"/> 
    <input type="submit" value="Submit" id="submitButton" /> 
</form> 

<script> 
    function submitForm() { 
    let input = document.querySelector('#searchTerm'); 
    console.log(input.value); 
    return false; 
    } 
</script> 
+0

Вам нужно вернуть false или preventDefault, или страница будет перезагружена. – mplungjan

+0

Могу ли я получить его для использования внешнего JS-файла? – OmisNomis

+0

Конечно, просто поместите код в файл, например script.js. Затем в вашем html вы выполняете

0

Отправить форму:

JS:

var searchForm= document.getElementById('searchForm'); 
var submitButton = document.getElementById('submitButton'); 

searchForm.onsubmit= function() { 
    console.log(searchTerm.value); 
}; 

HTML:

<form id="searchForm"> 
    <input type="text" id="searchTerm" /> 
    <input type="submit" value="Submit" id="submitButton" /> 
</form> 

По щелчку на кнопке:

JS:

var searchTerm = document.getElementById('searchTerm'); 
var submitButton = document.getElementById('submitButton'); 

submitButton.onclick = function() { 
    console.log(searchTerm.value); 
}; 

HTML:

<form> 
    <input type="text" id="searchTerm" /> 
    <input type="button" value="Submit" id="submitButton" /> 
</form> 

См демо Here

0

Чтобы иметь такую ​​функцию во внешнем файле, лучше всего, чтобы проводьте событие отправки в событие onload:

window.onload=function() { 
 
    document.getElementById("form1").onsubmit=function(e) { 
 
    e=e?e:event; 
 
    e.preventDefault(); // cancel the submit 
 
    var val = document.getElementById("searchTerm").value; 
 
    console.log(val); 
 
    } 
 
}
<form id="form1"> 
 
    <input type="text" id="searchTerm" /> 
 
    <input type="submit" value="Submit" id="submitButton" /> 
 
</form>

JQuery версия:

$(function() { 
 
    $("#form1").on("submit",function(e) { 
 
    e.preventDefault(); // cancel the submit 
 
    var val = $("#searchTerm").val(); 
 
    console.log(val); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<form id="form1"> 
 
    <input type="text" id="searchTerm" /> 
 
    <input type="submit" value="Submit" id="submitButton" /> 
 
</form>

0

Вы помечено это с JQuery, так вот ответ JQuery. Вам нужно использовать обработчик событий .submit().

$("form").submit(function(e) { 
 
    console.log("form data: %o", $(this).find("#searchTerm").val()); 
 
    e.preventDefault(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<form> 
 
    <input type="text" id="searchTerm" /> 
 
    <input type="submit" value="Submit" id="submitButton" /> 
 
</form>

Этот код будет присоединить обработчик к <form>onsubmit событие:

0

Так что главный вопрос я включил <script> элемент, ссылки на мой внешний JavaScript файл, на дно моего элемента <body>; что во время создания формы он не знал, о какой функции Javascript я говорил.

Благодаря всем тем, что помогли, и это было решение ....

HTML

<head> 
    <!-- jQuery library --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
    <!-- Custom JavaScript --> 
    <script src="js/wiki.js"></script> 
</head> 
<body> 
    <form id="theform" onsubmit="test(this.searchTerm.value)"> 
    <input type="text" id="searchTerm" /> 
    <input type="submit" value="Submit" id="submitButton" /> 
    </form> 
</body> 
</html> 

JavaScript

$(document).ready(function() { 

    test = function(value) { 
     console.log(value); 
    return false; 
    }; 

}); 
Смежные вопросы