#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();