Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
Php 无法通过jquery更改表单操作_Php_Javascript_Jquery_Forms_Submit - Fatal编程技术网

Php 无法通过jquery更改表单操作

Php 无法通过jquery更改表单操作,php,javascript,jquery,forms,submit,Php,Javascript,Jquery,Forms,Submit,我试图在使用jquery提交期间将表单操作更改为另一个链接。请查看以下代码: javascript $(document).ready(function(){ $("form[name='search']").submit(function(e){ var submit=$(this); submit.attr('action','?search='+submit.find("input[name='tsearch']").val()); });

我试图在使用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; ?>" />


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

  • 确保您的脚本被拉入页面,检查的一种方法是使用Chrome调试器中的“源”选项卡,并在html头部分搜索其他文件

  • 确保在包含jQuery之后包含了datatale脚本,因为它完全依赖于jQuery

  • 检查jQuery是否正确包含,并且只包含一次

  • 注意jQuery冲突。还有其他一些库正在重写$,因此您的代码无法工作,因为$不再是jQuery的别名。可以使用
    jQuery.noConflict()
    避免与页面上使用相同变量$的其他库发生冲突

  • alert(“?search=”+submit.find(“input[name='tsearch']”)val())
    查看您是否获得了所需的值


  • 下面是一个工作示例:

    您可以通过警报看到操作正在更改。您只需重新提交表单即可

    编辑:固定电位无限循环

    $(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();
    
      });
    
    });
    

    嗨,大孙,谢谢你的肯定。我相信这是一个无限循环!是的,亚历山大。这是一个无限循环。e.preventDefault()是不必要的。只需添加操作即可。@Alexander-修复了无限循环