Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 捕获所有链接,包括表单提交_Javascript_Jquery - Fatal编程技术网

Javascript 捕获所有链接,包括表单提交

Javascript 捕获所有链接,包括表单提交,javascript,jquery,Javascript,Jquery,我想知道如何使用jQuery捕获页面上的所有链接。这个想法类似于Facebook。在Facebook中,如果你点击一个链接,它会捕获该链接并使用ajax加载相同的链接。只有当你在新标签页等打开一个链接时,它才会使用常规调用加载页面 关于如何实现这种功能有什么线索吗?我确信捕获链接不应该是个问题,但是捕获表单提交,然后通过ajax提交整个数据,然后显示结果呢 有没有已经存在的插件 感谢您的时间。可以将常规表单转换为Ajax表单: $("#myForm").ajaxForm( {beforeS

我想知道如何使用jQuery捕获页面上的所有链接。这个想法类似于Facebook。在Facebook中,如果你点击一个链接,它会捕获该链接并使用ajax加载相同的链接。只有当你在新标签页等打开一个链接时,它才会使用常规调用加载页面

关于如何实现这种功能有什么线索吗?我确信捕获链接不应该是个问题,但是捕获表单提交,然后通过ajax提交整个数据,然后显示结果呢

有没有已经存在的插件

感谢您的时间。

可以将常规表单转换为Ajax表单:

$("#myForm").ajaxForm(
   {beforeSubmit: validate, success: showResponse} );
然而,对于一个任意的形式,要想做你想做的事情是很困难的。如果表单首先使用验证或由Ajax提交,该怎么办?同样的事情也适用于链接。如果有一些javascript导航脚本(window.location=Url),该怎么办?如果您不能完全控制页面,则很难完成您想要的操作。

可以将常规表单转换为Ajax表单:

$("#myForm").ajaxForm(
   {beforeSubmit: validate, success: showResponse} );

然而,对于一个任意的形式,要想做你想做的事情是很困难的。如果表单首先使用验证或由Ajax提交,该怎么办?同样的事情也适用于链接。如果有一些javascript导航脚本(window.location=Url),该怎么办?如果你不能完全控制页面,那么你就很难做你想做的事情。

通常像facebook这样的页面,会对每个事件和每个表单分别编码,因为服务器端文件通常是为每个操作/操作组设置的。我怀疑是否会有一个干净的方法来转换一个只有插件的页面。如果是的话,我会看到很多开销

您可以手工完成,但这也是Ajax的滥用。这不是flash,在所有服务器通信中使用ajax会遇到很多问题

  • 缺乏历史跟踪
  • 注意并发事件及其结果
  • 向用户传达页面正在更改
  • 关闭javascript的用户
  • 还有更多

通常像facebook这样的页面会对每个事件和每个表单分别进行编码,因为服务器端文件通常是为每个操作/操作组设置的。我怀疑是否会有一个干净的方法来转换一个只有插件的页面。如果是的话,我会看到很多开销

您可以手工完成,但这也是Ajax的滥用。这不是flash,在所有服务器通信中使用ajax会遇到很多问题

  • 缺乏历史跟踪
  • 注意并发事件及其结果
  • 向用户传达页面正在更改
  • 关闭javascript的用户
  • 还有更多
    • 亚历克

      你绝对可以做到

      我有一张表格就是这样处理的。它使用上面提到的jquery表单插件kgiannakakis。下面的javascript示例展示了它的工作原理

      $("form").ajaxForm({
          beforeSubmit: function(){
              //optional: startup a throbber to indicate form is being processed 
              var _valid = true;
              var _msg = '';
              //optional: validation code goes here. Example below checks all input
              //elements with rel attribute set to required to make sure they are not empty
              $(":input [rel='required']").each(function(i){
                  if (this.value == '') { 
                      _valid = false;
                      _msg += this.name + " may not be empty.\n";
                      $(this).addClass("error");       
                  }
              });
              alert(_msg);
              return _valid; 
          },
          success: function(response){
              //success here means that the HTTP response code indicated success
              //process response: example assumes JSON response
              $("body").prepend('<div id="message" class="' + response.status + '"></div>');
              $("#message").text(response.message).fadeIn("slow", function(){
                      $(this).fadeOut("slow").remove();
              });
          }
      });
      
      $(“表单”).ajaxForm({
      提交之前:函数(){
      //可选:启动一个跳动器以指示表单正在处理
      var _valid=true;
      var_msg='';
      //可选:此处显示验证代码。下面的示例检查所有输入
      //rel属性设置为必需的元素,以确保它们不是空的
      $(“:input[rel='required'])。每个(函数(i){
      如果(this.value=''){
      _有效=错误;
      _msg+=this.name+“不能为空。\n”;
      $(this.addClass(“错误”);
      }
      });
      警报(_msg);
      返回有效;
      },
      成功:功能(响应){
      //这里的success表示HTTP响应代码表示成功
      //流程响应:示例假设JSON响应
      $(“正文”)。前缀(“”);
      $(“#message”).text(response.message).fadeIn(“slow”,function(){
      $(this.fadeOut(“slow”).remove();
      });
      }
      });
      
      Alec

      你绝对可以做到

      我有一张表格就是这样处理的。它使用上面提到的jquery表单插件kgiannakakis。下面的javascript示例展示了它的工作原理

      $("form").ajaxForm({
          beforeSubmit: function(){
              //optional: startup a throbber to indicate form is being processed 
              var _valid = true;
              var _msg = '';
              //optional: validation code goes here. Example below checks all input
              //elements with rel attribute set to required to make sure they are not empty
              $(":input [rel='required']").each(function(i){
                  if (this.value == '') { 
                      _valid = false;
                      _msg += this.name + " may not be empty.\n";
                      $(this).addClass("error");       
                  }
              });
              alert(_msg);
              return _valid; 
          },
          success: function(response){
              //success here means that the HTTP response code indicated success
              //process response: example assumes JSON response
              $("body").prepend('<div id="message" class="' + response.status + '"></div>');
              $("#message").text(response.message).fadeIn("slow", function(){
                      $(this).fadeOut("slow").remove();
              });
          }
      });
      
      $(“表单”).ajaxForm({
      提交之前:函数(){
      //可选:启动一个跳动器以指示表单正在处理
      var _valid=true;
      var_msg='';
      //可选:此处显示验证代码。下面的示例检查所有输入
      //rel属性设置为必需的元素,以确保它们不是空的
      $(“:input[rel='required'])。每个(函数(i){
      如果(this.value=''){
      _有效=错误;
      _msg+=this.name+“不能为空。\n”;
      $(this.addClass(“错误”);
      }
      });
      警报(_msg);
      返回有效;
      },
      成功:功能(响应){
      //这里的success表示HTTP响应代码表示成功
      //流程响应:示例假设JSON响应
      $(“正文”)。前缀(“”);
      $(“#message”).text(response.message).fadeIn(“slow”,function(){
      $(this.fadeOut(“slow”).remove();
      });
      }
      });
      
      我可以控制页面。但我无论如何都不想修改中的页面。我想无缝地添加一个jquery插件,它可以自动完成所有事情。我可以控制页面。但我无论如何都不想修改中的页面。我想无缝地添加一个jquery插件,它可以自动完成所有事情。