Здесь есть несколько вопросов:
Используя $('.quote').click()
, вы устанавливаете обработчик на любое событие щелчка для любого элемента, содержащегося в <form>
.Если вы хотите перехватывать только события отправки, вы должны либо установить обработчик щелчка на кнопке отправки:
// BTW, don't use an id like "button" - it'll cause confusion sooner or later
$('#button').click(function() {
// do stuff
return false; // this will keep the form from actually submitting to the server,
// which would cause a page reload and kill the rest of your JS
});
, либо, предпочтительно, обработчик отправки в форме:
// reference by id - it's faster and won't accidentally find multiple elements
$('#quote').submit(function() {
// do stuff
return false; // as above
});
Обработчики отправки лучше, потому что они ловят другие способы отправки формы, например, нажимая Enter
при вводе текста.
Кроме того, в вашем скрытом <div>
вы помещаете Javascript в обычный текст, а нев теге <script>
, так что это просто будет видно на экране.Возможно, вам нужен элемент-заполнитель, на который вы можете сослаться:
<div class="thanks">Thanks for contacting us <span id="nameholder"></span>, we'll get back to you as soon as possible</div>
Затем вы можете вставить имя в заполнитель:
var name = $("#name").val();
$('#nameholder').html(name);
Я не знаю, что вы пытаетесь сделатьсо строкой $("input").val(text);
- text
здесь не определено, так что это не имеет никакого смысла.