Кнопка отправки для выполнения двух разных действий

#javascript

#javascript

Вопрос:

У меня есть следующий код на моей странице входа в систему для отправки.

 $("form").submit(function()
{setTimeout(function(){
alert("Thank you for requesting an account. Once your request is reviewed by an administrator, you will receive an email with your login credentials."); location.reload();
submit = true;}, 3000);
});
  

Проблема в том, что у меня есть другая кнопка отправки, и это сообщение также появляется при нажатии на эту кнопку. Как я могу это исправить?

Я хочу, чтобы одна отправка отображала это всплывающее окно, а другая кнопка отправки для входа в приложение без отображения этого всплывающего окна.

Комментарии:

1. не могли бы вы опубликовать соответствующий код??

2. привязать функцию к событию нажатия кнопки, а не к отправке формы

Ответ №1:

Вместо того, чтобы делать оповещение при отправке формы, сделайте это нажатием кнопок, а затем вызовите submit .

 $( "#firstButton" ).click(function() {
alert('whatever');
  $( "#form_id" ).submit();
});

$( "#secondButton" ).click(function() {
  $( "#form_id" ).submit();
});
  

Кроме того, чтобы предотвратить автоматическую отправку кнопок в вашей форме, измените их типы с type=»submit» на type=»button». Таким образом, они не будут автоматически запускать отправку. Вместо этого вы будете запускать отправку только явно внутри ваших функций click.

Ответ №2:

используйте отдельные идентификаторы кнопок и вызывайте функцию для отправки from . также укажите уникальный идентификатор для формы, поскольку использование тега формы вызовет функцию отправки всех элементов формы

 $('#buttonid').click(function(e){
   e.preventDefault();
   submitFunction(); }); // the function to submit the from with id #formID

function submitFunction(){
$("#formID").submit(function()
{setTimeout(function(){
alert("Thank you for requesting an account. Once your request is reviewed by an administrator, you will receive an email with your login credentials."); location.reload();
submit = true;}, 3000);
}); 
  

}

Ответ №3:

Вы не должны использовать $("form") , потому что это будет соответствовать всем элементам формы. Вы должны назначить идентификатор или атрибут класса своим формам, чтобы вы соответствовали только этим конкретным элементам.

 $("#form-id").submit(function() ...
   ^^^^^^^^
  

И ваша HTML-форма:

 <form id="form-id">
  

Комментарии:

1. @Rax … найдите мой HTML-код here…jsfiddle.net/ur974nex ….. каким должен быть мой идентификатор формы … я пробовал различные варианты, но не получил желаемого результата…

2. @Rax .. извините за глупый вопрос.. где я должен поместить это в свой код ….<идентификатор формы =»form-id»>

3. Это ваша существующая HTML-форма. Вам просто нужно добавить id="form-id" в свою форму атрибуты.

4. Нет проблем. 🙂