JQuery для изменения формы действия

У меня есть две кнопки в форме, и при нажатии на них нужно вызывать две разные страницы. когда нажата кнопка1, страница 1 должна быть загружена, и когда нажата кнопка2, загрузится страница2. Я знаю, как это сделать в javascript, но я не знаю, как это сделать в jquery. Может ли кто-нибудь мне помочь?

Ответ 1

Попробуйте следующее:

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


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

Ответ 2

jQuery - это просто JavaScript, не думайте об этом совсем иначе! Как и в "нормальном" JS, вы добавляете прослушиватель событий к кнопкам и изменяете атрибут действия формы. В jQuery это выглядит примерно так:

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

Этот код тот же для второй кнопки, вам нужно только изменить идентификатор вашей кнопки и URI, где должна быть отправлена ​​форма.

Ответ 3

Для сахара цели:

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

Ответ 4

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

Ответ 5

Используйте jQuery.attr() в обработчике кликов:

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

Ответ 6

Пожалуйста, посмотрите этот ответ: fooobar.com/questions/86046/...

Цитата Tamlyn:

jQuery (1.4.2) запутывается, если у вас есть какие-либо элементы формы с именем "action". Вы можете обойти это с помощью методов атрибутов 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>

Ответ 7

Чтобы изменить динамическое значение формы формы, вы можете попробовать выполнить код ниже:

ниже код - это если вы открываете какой-то окно dailog и внутри этого окна dailog у вас есть форма, и вы хотите изменить его действие. Я использовал бутстрап dailog box и при открытии этого окна dailog я присваиваю значение действия форме.

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