jquery отправить форму после проверки проверки

Мне нужно перенаправить пользователя на другую страницу с именем «free.php» со страницы индекса, если пользователь установил флажок без изменения URL-адреса с помощью jquery. Я создал пример здесь,

http://jsfiddle.net/jKHQe/

Здесь флажок установлен, но я не смог перенаправить на free.php. Хотя я новичок в jquery и ajax, я не смог найти ответ. что мне нужно изменить в моем коде?

Спасибо!


person Zendie    schedule 28.06.2012    source источник
comment
Вместо $.ajax почему бы просто не сделать $(event.target).submit();   -  person ShaggyInjun    schedule 28.06.2012
comment
если у вас есть форма, почему у вас есть вызов ajax? как сказал @ShaggyInjun, отправьте форму. или если вы хотите использовать ajax, удалите отправку и используйте кнопку.   -  person Cheluis    schedule 28.06.2012
comment
когда я помещаю форму action=free.php, URL-адрес будет www.example.com/free.php. Мне нужен URL-адрес www.example.com, если пользователь перенаправляется на free.php со страницы индекса. Как я могу это сделать?   -  person Zendie    schedule 28.06.2012


Ответы (3)


Невозможно перенаправить с помощью вызова $.ajax, если вы физически не перенаправляете в одном из обработчиков. Но это разрушит ваше намерение не менять URL-адрес браузера.

Единственные способы не менять URL-адрес браузера:

  • Включите iframe и измените его источник на free.php
  • Обработайте вызов ajax и введите ответ в элемент, который в данный момент находится на странице.

Обработайте ajax и вставьте HTML ответ от free.php в DOM:

$.ajax({
    type: "POST",
    url: "free.php",
    data: formdata,
    dataType : 'html',
    success : function(html) { $('div.result').html(html); }
});
person xandercoded    schedule 28.06.2012
comment
Привет, спасибо за ваш ответ. У вас есть пример или какие-то ресурсы? - person Zendie; 28.06.2012
comment
изменение источника iframe через JS - stackoverflow.com/questions/3730159 / - person xandercoded; 28.06.2012

Почему бы не установить действие на free.php и не удалить вызов ajax? так было бы:

$("#agreeForm").submit(function()
{

    if (!$("#agree").is(':checked'))  
    {
    document.getElementById("err").innerHTML="you must agree to terms if you would like to access web";
              return false;

    } 
});
person septemberbrain    schedule 28.06.2012

Я не думаю, что $.ajax - это то, что вы хотите сделать из своего описания, $.ajax() используется для вызова страницы и получения от нее ответа без перезагрузки.

Я бы удалил вызов ajax вместе и изменил заголовок формы на <form method="POST" action="free.php" id="agreeForm" name="Agree">

$(document).ready(function() {
   $("#agreeForm").submit(function()
    {
      if (!$("#agree").is(':checked'))  
      {
         document.getElementById("err").innerHTML="you must agree to terms if you would like to access web";
         return false;

      } 
   });
});
person GrayB    schedule 28.06.2012