Отправьте HTML-форму, выполните функцию javascript (предупреждение затем перенаправление)
У меня есть функция JavaScript, которая отлично работает, когда я вызываю ее с помощью метода onClick.
В основном, это то, что он извлекает данные из html-формы, а затем на основе этих данных перенаправляет на другую страницу.
Однако, когда я нажимаю кнопку 'enter', чтобы отправить форму/вызвать функцию JavaScript, вместо того, чтобы использовать кнопку onClick для вызова функции JavaScript, она не отвечает так, как мне бы хотелось.
Я бы хотел, чтобы пользователь нажал кнопку ввода на своей клавиатуре, то же самое происходит, как если бы они нажимали кнопку "продолжить" на странице (которая вызывает функцию через onClick)
Вот мой код:
Функция JS:
function completeAndRedirect(){
alert('You\'re nearly there! To complete your entry, you simply need to tap \'continue\' on the next page. Good luck!');
location.href='http://google.com/?SID='+'<? echo $CATEGORY; ?>'+','+'<? echo $PLATFORM; ?>'+','+'<? echo $DEVICE; ?>'+'&email='+document.forms[0].elements[0].value;
}
Вот форма:
<form action="" method="post" onsubmit="completeAndRedirect()">
<input type="text" id="Edit1" style="width:280; height:50; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:22px">
</form>
Огромное спасибо всем, кто может помочь!
Ответы
Ответ 1
<form action="javascript:completeAndRedirect();">
<input type="text" id="Edit1"
style="width:280; height:50; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:22px">
</form>
Изменение действия, чтобы указать на вашу функцию, решило бы проблему по-другому.
Ответ 2
Вам нужно предотвратить поведение по умолчанию. Вы можете использовать e.preventDefault()
или return false;
. В этом случае самое лучшее, вы можете использовать return false;
здесь:
<form onsubmit="completeAndRedirect(); return false;">
Ответ 3
Похоже, что ваша форма отправляется по умолчанию, вы можете ее остановить:
<form action="" method="post" onsubmit="completeAndRedirect();return false;">
Ответ 4
В качестве альтернативы другим ответам у вас могут быть две кнопки: одна для отправки и одна, которая "притворяется" кнопкой отправки. Фактическая кнопка отправки может быть скрыта, а другая видна, и вы можете делать все, что пожелаете, с помощью JavaScript при нажатии кнопки "притворяться", а затем имитировать щелчок на фактической кнопке отправки в конце вашего кода.
Как вы могли бы имитировать щелчок, я не знаю, но я предполагаю, что это возможно, как это сделано в jQuery ($.click()
).