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