我正在尝试使用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; ?>" />
虽然我似乎无法让它发挥作用。任何帮助将不胜感激。
答案 0 :(得分:2)
以下是一个有效的例子: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 :(得分:1)
您的代码似乎没问题。有一些事情你可以尝试让这个工作。
确保您的脚本被拉入页面,一种方法是使用Chrome调试器中的“来源”标签并在html主题部分中搜索其他文件
确保在包含jQuery之后已经包含了datatale脚本,因为它肯定取决于它。
检查jQuery是否正确包含且仅一次。
注意jQuery冲突。还有一些其他的库覆盖了$,所以你的代码不能工作,因为$不再是jQuery的别名。您可以使用jQuery.noConflict()
来避免与页面上使用相同变量$的其他库发生冲突。
alert('?search='+submit.find("input[name='tsearch']").val())
看看你是否得到了你想要的价值。