HTML: JavaScript: представление формы блока и вызов функции Javascript
Я хочу сделать вызов AJAX, когда нажата кнопка отправки в форме.
InFact я can not удаляет <form>
, потому что я хочу также сделать проверку клиентов.
Я пробовал этот код.
<form name="search" >
Name: <input type="text" name="name1"/>
Age: <input type="text" name="age1"/>
<input type="submit" name="Submit" value="Submit" onclick="makeSearch()"/>
</form>
JS
function makeSearch(){
alert("Code to make AJAX Call");
}
После использования этого предупреждения() не отображается, но страница перезагружается.
Я хочу заблокировать перезагрузку страницы и вызвать функцию JS.
Спасибо
Ответы
Ответ 1
Добавьте атрибут onsubmit
в тег form
:
<form name="search" onsubmit="return makeSearch()" >
Name: <input type="text" name="name1"/>
Age: <input type="text" name="age1"/>
<input type="submit" name="Submit" value="Submit"/>
</form>
И javascript добавьте return false
в конец:
function makeSearch() {
alert("Code to make AJAX Call");
return false;
}
Ответ 2
Правильный путь jQuery будет:
$("form").on('submit', function (e) {
//ajax call here
//stop form submission
e.preventDefault();
});
Как вы сказали, вы также можете удалить элемент <form>
и просто привязать вызов ajax к событию click
.
Ответ 3
используйте jQuery.post и измените кнопку отправки.
Кнопка "Отправить" создает для отправки данных на сервер через POST (собственный метод, а не ajax), я предлагаю использовать его только в особых случаях, например, при загрузке файла.
Если вы продолжаете использовать кнопку отправки для запроса ajax, у вас будет много проблем с IE.
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script language="javascript">
function makeSearch()
{
if(validateIdata())
{
alert("send ajax request");
return;
$.ajax({
type: 'POST',
url: url, //- action form
data: {name1:$('#name1').val(),age1:$('#age1').val()},
success: function(){
alert('success');
}
});
}
}
function validateIdata()
{
if($('#name1').val() =='')
{
alert("Invalid Name");
return false;
}
if($('#age1').val() =='')
{
alert("Invalid Age");
return false;
}
return true;
}
</script>
</head>
<body>
<form name="search" >
Name: <input type="text" id="name1" name="name1"/>
Age: <input type="text" id="age1" name="age1"/>
<input type="button" name="Submit" value="Submit" onclick="makeSearch()"/>
</form>
</body>
</html>
Ответ 4
<form name="search" >
Name: <input type="text" name="name1"/>
Age: <input type="text" name="age1"/>
<input type="submit" name="Submit" value="Submit" onclick="return makeSearch();"/>
</form>
function makeSearch(){
alert("Code to make AJAX Call");
}
просто используйте return in onclick, он будет полезен для u
Ответ 5
document.getElementById("bt1").type='submit';
document.getElementById("bt1").onclick="";
var elem = document.getElementById("bt1");
if (typeof elem.onclick == "function") {
elem.onclick.apply(elem);
}
<form id="org" action="">
<fieldset class="log">
<legend>Log in</legend>
<label for="uname">Username</label>
<input type="text" name="uname" id="uname" value="" required/><br />
<label for="pword">Password</label>
<input type="password" name="pword" id="pword" value="" required/><br />
<input type="button" onclick="organizer()" value="LOG IN" class="red-btn" id="bt1"/>
</fieldset>
</form>
Ответ 6
Наконец, я получил ответ
$("form").live("submit", function() {
makeSearch();
return false;
});