Изменить текст кнопки отправки после отправки формы?

#javascript #php #jquery #input #submit

#javascript #php #jquery #ввод #Отправить

Вопрос:

У меня есть форма регистрации по электронной почте, и я хочу, чтобы кнопка отправки менялась с «отправить» на «спасибо» при отправке формы. Копал и не смог найти решение.

  <form id="signup" action="<?=$_SERVER['PHP_SELF']; ?>" method="get">
      <fieldset>

            <span id="response">
                <? require_once('inc/store-address.php'); if($_GET['submit']){ echo storeAddress(); } ?>
              </span>
          </label>
          <input type="text" name="email" id="email" placeholder="your e-mail address" />
          <input type="submit" name="submit" value="submit" class="btn" alt="submit" />

          <div id="no-spam"><!--We'll never spam or give this address away--></div>
      </fieldset>
    </form>      
  

Я использую простую подписку MailChimp здесь:http://apidocs.mailchimp.com/downloads/mcapi-simple-subscribe-jquery.zip

спасибо за вашу помощь!!

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

1. Как вы узнаете, отправлена форма или нет? Вы отправили форму с помощью php или jquery

Ответ №1:

Вы могли бы использовать сокращенный оператор if, чтобы изменить результат, для этого вам не нужен JavaScript. Разве это не то, что вам нужно?

 <input type="submit" name="submit" value="<?=($_GET['submit'])? "Thanks" : "Submit"?>" class="btn" alt="submit" />
  

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

1. Хм, это не сработало. Возможно, в тексте ответа ajaxy что-то не так? Смотрите здесь: http://the-contrary.com /

2. Вы пробовали $_REQUEST['submit'] вместо $_GET['submit'] ?

Ответ №2:

Сначала добавьте onsubmit атрибут.

 <form id="signup" action="<?=$_SERVER['PHP_SELF']; ?>" method="get" onsubmit="sayThanks()">
  

Добавить id к кнопке отправки:

 <input type="submit" name="submit" id="submitButton" value="submit" class="btn" alt="submit" />
  

Наконец, объявите sayThanks() функцию:

 function sayThanks(){
    document.getElementById("submitButton").value = "Thanks!";
}
  

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

1. Привет @proulxsie если этот или любой другой ответ решил ваш вопрос, пожалуйста, подумайте о том, чтобы принять его , установив флажок. Это указывает более широкому сообществу, что вы нашли решение, и создает определенную репутацию как ответчику, так и вам самим. Нет никаких обязательств делать это. Я рад, что у вас это сработало.

Ответ №3:

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

 $("#signup").submit(function(e)
{
    var postData = $(this).serializeArray();
    var formURL = $(this).attr("action");
    $.ajax(
    {
        url : formURL,
        type: "POST",
        data : postData,
        success:function(data, textStatus, jqXHR)
        {
            $("input[type='submit']").val("Thanks");
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            //if fails     
        }
    });
    e.preventDefault(); //STOP default action
    e.unbind(); //unbind. to stop multiple form submit.
});

$("#signup").submit();