1

如果用户使用 jquery 在没有更改 url 的情况下选中复选框,我需要将用户从索引页面重定向到另一个名为“free.php”的页面。我在这里创建了一个示例,

http://jsfiddle.net/jKHQe/

这里的复选框正在验证,但我无法重定向到 free.php。虽然我是 jquery 和 ajax 的新手,但我找不到答案。我需要在我的代码中更改什么?

谢谢!

4

3 回答 3

1

$.ajax除非您在其中一个处理程序中进行物理重定向,否则无法使用调用进行重定向。但是,这会破坏您不更改浏览器网址的意图。

不更改浏览器 URL 的唯一方法是:

  • 合并一个iframeand 并将其源更改为free.php
  • 处理 ajax 调用并将响应注入到页面上当前的元素中。

处理ajax并将HTML响应注入free.phpDOM

$.ajax({
    type: "POST",
    url: "free.php",
    data: formdata,
    dataType : 'html',
    success : function(html) { $('div.result').html(html); }
});
于 2012-06-28T02:07:57.127 回答
0

为什么不将操作设置为 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;

    } 
});
于 2012-06-28T02:07:33.773 回答
0

我不认为$.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;

      } 
   });
});
于 2012-06-28T02:08:40.387 回答