प्रपत्र कार्रवाई को बदलने के लिए jquery


117

मेरे पास एक फॉर्म में दो बटन हैं और क्लिक करने पर दो अलग-अलग पेजों पर कॉल करना होगा। जब बटन 1 पर क्लिक किया जाता है तो पेज 1 को लोड किया जाना चाहिए और जब बटन 2 पर क्लिक किया जाता है तो पेज 2 को लोड किया जाना चाहिए। मुझे पता है कि जावास्क्रिप्ट में यह कैसे करना है लेकिन मुझे इस बारे में कोई सुराग नहीं है कि यह कैसे करना है?

जवाबों:


181

इसे इस्तेमाल करे:

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


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

28

jQuery सिर्फ जावास्क्रिप्ट है, इसके बारे में बहुत अलग तरह से मत सोचो! जैसे आप 'सामान्य' जेएस में करते हैं, आप एक ईवेंट श्रोता को बटन में जोड़ते हैं और प्रपत्र की क्रिया विशेषता को बदलते हैं। JQuery में यह कुछ इस तरह दिखता है:

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

यह कोड दूसरे बटन के लिए समान है, आपको केवल अपने बटन की आईडी और यूआरआई बदलने की जरूरत है, जहां फॉर्म सबमिट किया जाना चाहिए।



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) भ्रमित हो जाता है यदि आपके पास "कार्रवाई" नामक कोई भी तत्व हैं। आप डोम विशेषता विधियों का उपयोग करके इसे प्राप्त कर सकते हैं या "कार्रवाई" नाम के फार्म तत्वों को रखने से बच सकते हैं।

<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

प्रपत्र के क्रिया मान को गतिशील रूप से बदलने के लिए, आप नीचे दिए गए कोड की कोशिश कर सकते हैं:

नीचे कोड है यदि आप कुछ डैलॉग बॉक्स खोल रहे हैं और उस डैलॉग बॉक्स के अंदर आपके पास फॉर्म है और आप इसकी कार्रवाई को बदलना चाहते हैं। मैंने बूटस्ट्रैप 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.