我有一个表单里面有两个按钮,当它们被点击时必须调用两个不同的页面。当点击button1时,页面1必须加载,而当点击button2时,页面2必须加载。我知道如何使用javascript实现这一点,但我不知道如何在jquery中实现。有人可以帮我吗?
我有一个表单里面有两个按钮,当它们被点击时必须调用两个不同的页面。当点击button1时,页面1必须加载,而当点击button2时,页面2必须加载。我知道如何使用javascript实现这一点,但我不知道如何在jquery中实现。有人可以帮我吗?
试试这个:
$('#button1').click(function(){
$('#formId').attr('action', 'page1');
});
$('#button2').click(function(){
$('#formId').attr('action', 'page2');
});
jQuery只是JavaScript,不要将它看作完全不同的东西!就像在“普通”的JS中一样,你可以给按钮添加事件监听器并更改表单的操作属性。在jQuery中,这看起来应该像这样:
$('#button1').click(function(){
$('#your_form').attr('action', 'http://uri-for-button1.com');
});
这段代码对于第二个按钮来说是一样的,你只需要改变按钮的id和表单应该被提交到的URI。
在您的单击处理程序中使用jQuery.attr()
:
$("#myform").attr('action', 'page1.php');
<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>
为了多样性的缘故:
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');
});
要动态更改表单的操作值,您可以尝试以下代码:
如果您正在打开某个对话框,并且在该对话框中有一个表单并且您想更改它的操作,则可以使用下面的代码。我使用了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);
});