Jquery改变表单动作

时间:2011-03-27 19:05:31

标签: jquery

我在表单中有两个按钮,点击它们时必须调用两个不同的页面。当单击button1时,必须加载page1,当单击button2时,必须加载page2。我知道如何在javascript中执行此操作,但我不知道如何在jquery中执行此操作。任何人都可以帮助我吗?

7 个答案:

答案 0 :(得分:146)

试试这个:

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


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

答案 1 :(得分:24)

jQuery只是JavaScript,不要认为它有很大的不同!就像你在“普通”JS中所做的那样,你可以向按钮添加一个事件监听器并更改表单的action属性。在jQuery中,这看起来像:

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

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

答案 2 :(得分:13)

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

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

答案 3 :(得分:13)

为了各种各样的缘故:

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

答案 4 :(得分:8)

$('#button1').click(function(){
$('#myform').prop('action', 'page1.php');
});

答案 5 :(得分:6)

请参阅此答案:https://stackoverflow.com/a/3863869/2096619

引用Tamlyn

  如果你有任何名为“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>

答案 6 :(得分:0)

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

  

下面的代码是,如果你打开一些dailog框,在你的dailog框里面你有表格,你想改变它的动作。我使用了Bootstrap dailog box,在打开那个dailog box时,我正在为表单分配动作值。

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