不能通过jquery改变表单动作

Cannot change form action via jquery

本文关键字:表单 改变 jquery 不能      更新时间:2023-09-26

我试图在使用jquery提交期间将表单动作更改为另一个链接。请查看以下代码:

javascript

$(document).ready(function(){
    $("form[name='search']").submit(function(e){
        var submit=$(this);
        submit.attr('action','?search='+submit.find("input[name='tsearch']").val());
    });
});
HTML/PHP

    <form name="search" method="post">
          <input class="inputbox" type="text" name="tsearch" value="<?php echo $text_search; ?>" />

虽然我似乎不能让它工作。

下面是一个工作示例:http://jsfiddle.net/RmKDT/4/

您可以通过警报看到操作正在发生变化。您只需要重新提交表单。

编辑:固定电位无限循环

$(function(){
  var submitted = false;
  $('form').submit(function(e){
    if (submitted == true) {
      return;
    }
    e.preventDefault();
    var action = $(this).attr('action');
    alert(action);
    $(this).attr('action', 'two.php');
    action = $(this).attr('action');
    alert(action);
    submitted = true;
    // resubmit the form
    $(this).submit();
  });
});

您的代码似乎很好。有几件事你可以试着让它工作。

  1. 确保您的脚本被拉入页面,检查的一种方法是在Chrome调试器中使用'sources'选项卡,并在html头部分

  2. 中搜索文件else
  3. 请确保在包含jQuery之后包含了datale脚本,因为它肯定依赖于jQuery。

  4. 检查jQuery是否正确且只包含一次

  5. 注意jQuery冲突。有一些其他库重写了$,所以你的代码不能工作,因为$不再是jQuery的别名了。您可以使用jQuery.noConflict()来避免与页面上使用相同变量$.

  6. 的其他库冲突。
  7. alert('?search='+submit.find("input[name='tsearch']").val())查看你是否得到你想要的值