Jquery 更改表单操作

我有两个按钮在一个表单和两个不同的网页必须调用时,他们被点击。单击 button1时必须加载 page1,单击 button2时必须加载 page2。我知道如何在 javascript 中做到这一点,但我不知道如何在 jquery 中做到这一点。有人能帮我吗?

346936 次浏览

在单击处理程序中使用 jQuery.attr():

$("#myform").attr('action', 'page1.php');

JQuery 只是 JavaScript,不要以不同的方式思考它!与在“普通”JS 中一样,您需要向按钮添加一个事件侦听器,并更改表单的 action 属性。在 jQuery 中,这看起来像是:

$('#button1').click(function(){
$('#your_form').attr('action', 'http://uri-for-button1.com');
});

第二个按钮的代码是相同的,您只需要更改按钮的 id 和表单应该提交到的 URI。

试试这个:

$('#button1').click(function(){
$('#formId').attr('action', 'page1');
});




$('#button2').click(function(){
$('#formId').attr('action', 'page2');
});

为了多样化:

var actions = {input1: "action1.php", input2: "action2.php"};
$("#input1, #input2").click(function() {
$(this).closest("form").attr("action", actions[this.id]);
});
$('#button1').click(function(){
$('#myform').prop('action', 'page1.php');
});

请看这个答案: https://stackoverflow.com/a/3863869/2096619

引用 塔姆林:

如果有任何名为“ action”的表单元素,jQuery (1.4.2)就会混淆。您可以通过使用 DOM 属性方法来解决这个问题,或者干脆避免使用名为“ action”的表单元素。

<form action="foo">
<button name="action" value="bar">Go</button>
</form>


<script type="text/javascript">
$('form').attr('action', 'baz'); //this fails silently
$('form').get(0).setAttribute('action', 'baz'); //this works
</script>

要动态更改表单的操作值,可以尝试以下代码:

下面的代码是,如果你打开一些 dailog 框,并在该 dailog 框内,你有形式,你想改变它的行动。我使用 Bootstrap 日志框,在打开该日志框时,我将为表单分配操作值。

$('#your-dailog-id').on('show.bs.modal', function (event) {
var link = $(event.relatedTarget);// Link that triggered the modal
var cURL= link.data('url');// Extract info from data-* attributes
$("#delUserform").attr("action", cURL);
});

如果试图更改常规页上的表单操作,请使用以下代码

$("#yourElementId").change(function() {
var action = <generate_action>;
$("#formId").attr("action", action);
});