Form eylemini değiştirmek için jquery


119

Bir formda iki düğmem var ve iki farklı sayfanın tıklandığında çağrılması gerekiyor. button1 tıklandığında page1 yüklenmeli ve button2 tıklandığında page2 yüklenmelidir. Bunu javascript'te nasıl yapacağımı biliyorum ama jquery'de bunu nasıl yapacağım konusunda hiçbir fikrim yok. Biri bana yardımcı olabilir mi?

Yanıtlar:


182

Bunu dene:

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


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

28

jQuery sadece JavaScript, onun hakkında çok farklı düşünmeyin! 'Normal' JS'de yaptığınız gibi, düğmelere bir olay dinleyicisi eklersiniz ve formun eylem özniteliğini değiştirirsiniz. JQuery'de bu şuna benzer:

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

Bu kod ikinci düğme için de aynıdır, yalnızca düğmenizin kimliğini ve formun gönderileceği URI'yi değiştirmeniz gerekir.


20

jQuery.attr()Tıklama işleyicinizde kullanın :

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

14

Çeşitlilik uğruna:

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

14

Lütfen şu cevaba bakın: https://stackoverflow.com/a/3863869/2096619

Tamlyn'den alıntı yapmak :

"action" adında herhangi bir form öğeniz varsa jQuery (1.4.2) kafası karışır. DOM özelliği yöntemlerini kullanarak bu sorunu aşabilir veya "eylem" adlı form öğelerine sahip olmaktan kurtulabilirsiniz.

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

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

0

Formun eylem değerini dinamik olarak değiştirmek için aşağıdaki kodu deneyebilirsiniz:

Aşağıdaki kod, bir dailog kutusu açıyorsanız ve bu dailog kutusunun içinde formunuz varsa ve onun eylemini değiştirmek istiyorsanız. Bootstrap dailog kutusunu kullandım ve bu dailog kutusunu açarken forma eylem değeri atıyorum.

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

Normal sayfadaki form eylemini değiştirmeye çalışıyorsanız, aşağıdaki kodu kullanın

$("#yourElementId").change(function() { 
  var action = <generate_action>;
  $("#formId").attr("action", action);
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.