Jquery для зміни форми дії


117

У мене є дві кнопки у формі, і дві різні сторінки потрібно викликати при натисканні на них. після натискання кнопки1 тоді сторінка1 повинна бути завантажена, а при натисканні кнопки2 - сторінка2 повинна бути завантажена. Я знаю, як це зробити в JavaScript, але я не маю поняття, як це зробити в jquery.Чи може мені хтось допомогти?

Відповіді:


181

Спробуйте це:

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


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

28

jQuery - це просто JavaScript, не думайте про це зовсім інакше! Як і в звичайному JS, ви додаєте на кнопки слухача подій і змінюєте атрибут дії форми. У jQuery це виглядає приблизно так:

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

Цей код однаковий для другої кнопки, вам потрібно лише змінити ідентифікатор вашої кнопки та URI, куди слід надіслати форму.



14

Ради різноманітності:

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

14

Будь ласка, дивіться цю відповідь: https://stackoverflow.com/a/3863869/2096619

Цитуючи Тамлін :

jQuery (1.4.2) плутається, якщо у вас є будь-які елементи форми з назвою "дія". Ви можете обійти це за допомогою методів атрибутів DOM або просто уникнути наявності елементів форми з назвою "дія".

<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>


0

Щоб динамічно змінити значення дії форми, ви можете спробувати нижче код:

внизу код - якщо ви відкриваєте якесь дайлогічне поле, а всередині цього дайлового вікна у вас є форма, і ви хочете змінити дію. Я використав поле bootstrap dailog і, відкривши це поле 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);
});
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.