2010-10-16 2 views

ответ

0

Предположим, что ваш HTML выглядит примерно так:

<div id="formHolder"> 
<form id="myForm"> 
... 
</form> 
</div> 

что-то вроде этого:

$("#myForm").submit(function(){ 
    $("#formHolder").html("Your static content"); 
}); 
+0

Чтобы быть ясным, это заменит содержимое сразу после нажатия кнопки отправки. Если вы хотите дождаться окончания формы, вызов '.html()' должен пройти в обратном вызове успеха для вызова AJAX. – VoteyDisciple

+0

Да, я знаю. Но OP ничего не сказал об AJAX, поэтому я предполагаю, что это то, что он ищет. –

+4

На самом деле это не так. Поскольку не было использовано ни preventDefault(), ни return false, форма просто представила бы как обычно –

0

Вы можете найти пример этого здесь

https://www.write-about-property.com/seo-services/ код для работы на form submit использует экземпляр объекта, созданного в form.js

Если у вас есть трещина в нем, тогда вернитесь, мы поможем вам улучшить его для вашей цели. Вы бы поставить DIV вы хотели обновить в toupdate вар

ajform.toupdate = $ («# обновление»)

+0

ОК. Благодаря! Сделаю. –

1

вы не должны использовать Ajax для этого, после отправки формы Вы можете оформить перенаправление на статическую страницу без формы (post-redirect-get pattern).

Но обратите внимание, что в этом случае вся страница будет обновляться при подаче,
и если представить, возможно, не из какой-то причине (кто сказал валидация), попав F5 появится безобразное «вы хотите отправить дерьмо. .. "

так что нет, вам не нужно использовать ajax, but it is so easy with the form plugin, что это преступление не для того.
если вы используете форму плагин, то на обратном вызове скрыть форму с статическим контентом

0

вы можете просто сделать дивы невидимыми, а кнопка отправка только кнопка с Js действий, чтобы сделать DIV видимым

<script type="text/javascript" language="javascript"> 
function step2() { 
     document.getElementById('step1_container').style.display = 'none'; 
     document.getElementById('step2_container').style.display = 'block'; 
} 

function step3() { 
     document.getElementById('step2_container').style.display = 'none'; 
     document.getElementById('step3_container').style.display = 'block'; 
} 
</script> 

... 

<form action="validate.php" method="post"> 

<div id="step1_container"> 
PAGE 1 here 

<input type="button" onclick="javascript:step2();" value="submit"/> 
</div> 

<div id="step2_container" style="display: none;"> 
Page 2 here 
<input type="button" onclick="javascript:step3();" value="submit"/> 
</div> 

<div id="step3_container" style="display: none;"> 
Page 3 here 
<input type="button" onclick="javascript:step4();" value="submit"/> 
</div> 

</form> 

И так далее

0

Вам не нужно Аякса, используя только на странице Javascript будет достаточно.

Однако с помощью ajax вы можете отображать содержимое со страницы, на которую вы отправляете форму.

Попробуйте jQuery From plugin для элегантного решения АЯКСА:

<script type="text/javascript" src="jquery-1.3.2.js"></script> 
<script type="text/javascript" src="jquery.form.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#myForm').ajaxForm({ 
      target:  '#divToUpdate', 
      url:  'comment.php', 
      success: function() { 
       alert('Thanks for your comment!'); 
      } 
     }); 
    }); 
</script> 
1

Вам нужен Ajax: (Я сделаю это, как сказал SimpleCoder, но с вызовом AJAX)

$('#myForm').submit(function(){ 
    var field1 = $("#field1").serialize(); // If this doesn't work just remove the serialize() 
    var field2 = $("#field2").serialize(); 
    $.ajax({ 
     type: "POST", 
     url : "???",  //your processing page URL instead of ??? 
     data: "&field1="+field1+"&field2="+field2, 
     success: function(){ 
     $("#formHolder").html("Your static content"); 
     } 
    }); 
}); 

(Вы следует заменить поле1, поле2 на ваши поля, а если оно не работает, удалите функцию serialize().)

  • Все, что вам нужно сделать, это .html() статический контент в функции успеха вызова ajax.
+0

Как сказал Ави Пинто, вам не нужно * ajax, но это сделает его более быстрым, скользким и вообще приятным в использовании, и этот код выглядит правильно. Однако, если вы умны, вы можете заставить его работать с AJAX, если он доступен, но затем вернуться к шаблону post-redirect-get, если javascript отключен. –

Смежные вопросы