JQuery के साथ एक मल्टी-स्टेज फॉर्म को रीसेट करना


349

मेरे पास मानक रीसेट बटन के साथ एक फॉर्म है जिसे इस प्रकार कोडित किया गया है:

<input type="reset" class="button standard" value="Clear" />

परेशानी यह है कि कहा जाता है कि फॉर्म मल्टी-स्टेज सॉर्ट का है, इसलिए यदि कोई उपयोगकर्ता किसी चरण को भरता है और बाद में वापस लौटता है, तो क्लियर बटन क्लिक होने पर विभिन्न क्षेत्रों के लिए 'याद किया गया' मान रीसेट नहीं होगा।

मैं सोच रहा हूं कि सभी क्षेत्रों में लूप करने के लिए एक jQuery फ़ंक्शन संलग्न करना और उन्हें साफ़ करना 'मैन्युअल रूप से' होगा। मैं पहले से ही फॉर्म के भीतर jQuery का उपयोग कर रहा हूं, लेकिन मैं केवल गति के लिए उठ रहा हूं और इसलिए मुझे यकीन नहीं है कि इस बारे में कैसे जाना जाए, आईडी द्वारा प्रत्येक क्षेत्र को व्यक्तिगत रूप से संदर्भित करने के अलावा, जो बहुत कुशल नहीं लगता है।

किसी भी मदद के लिए टी.आई.ए.


1
@ da5id: ध्यान रखने योग्य बात यह है कि मेरे स्वीकृत तत्व छिपे हुए तत्वों को भी खाली कर रहे हैं! आप शायद ऐसा नहीं चाहते हैं, इसलिए बस जोड़ें: not()अगर आपके फॉर्म में कोई छिपा हुआ इनपुट है तो छिपा दिया जाए।
पाओलो बरगीनो

धन्यवाद पाउलो, बहुत अच्छी बात यह है कि मैं ध्यान में रखूँगा।
५५:५०

2
अच्छे उत्तर की तलाश में किसी के लिए, सावधान रहें। स्वीकृत उत्तर सही रास्ते पर है लेकिन इसमें कीड़े हैं। अब तक के सबसे मत वाले उत्तर को प्रश्न समझ में नहीं आया। कई अन्य उत्तर भी गलत समझे और खाली / स्पष्ट के साथ भ्रमित हो गए

1
मिस्टेकिन का अधिकार- दोनों प्रश्न और वर्तमान में स्वीकार किए गए उत्तर को रीसेट करने के साथ क्लीयरिंग क्लीयर करना - मुझे लगता है कि प्रश्नकर्ता वास्तव में मूल शीर्षक के बावजूद एक मल्टी-स्टेज फॉर्म रीसेट समाधान की तलाश कर रहा था- मैंने तदनुसार शीर्षक अपडेट किया है।
यारिन

hep hep, इस सवाल की उम्र के बावजूद मैंने एक नया उत्तर जोड़ा है जो वास्तव में एक फॉर्म के मनमाने भागों को रीसेट करता है ... stackoverflow.com/questions/680241/…
kritzikratzi

जवाबों:


502

मार्च 2012 को अपडेट किया गया।

इसलिए, मूल रूप से इस प्रश्न का उत्तर देने के दो साल बाद, मैं यह देखने के लिए वापस आया कि यह बहुत बड़ी गड़बड़ी में बदल गया है। मुझे लगता है कि यह उस समय के बारे में है जब मैं इसमें वापस आता हूं और अपना उत्तर सही मायने में सही करता हूं क्योंकि यह सबसे उत्कीर्ण + स्वीकृत है।

रिकॉर्ड के लिए, टिटी का उत्तर गलत है क्योंकि यह नहीं है कि मूल पोस्टर ने क्या पूछा है - यह सही है कि मूल रीसेट () विधि का उपयोग करके एक फॉर्म को रीसेट करना संभव है, लेकिन यह प्रश्न याद किए गए फॉर्म को बंद करने की कोशिश कर रहा है यदि आप इसे इस तरह से रीसेट करते हैं तो मान इस प्रकार बने रहेंगे। यही कारण है कि एक "मैनुअल" रीसेट की आवश्यकता है। मुझे लगता है कि अधिकांश लोग Google खोज से इस प्रश्न को समाप्त कर चुके हैं और वास्तव में रीसेट () विधि की तलाश कर रहे हैं, लेकिन यह उस विशिष्ट मामले के लिए काम नहीं करता है जो ओपी के बारे में बात कर रहा है।

मेरा मूल उत्तर यह था:

// not correct, use answer below
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');

जो ओपी के लिए सहित कई मामलों के लिए काम कर सकता है, लेकिन जैसा कि टिप्पणियों में और अन्य उत्तरों में बताया गया है, किसी भी मूल्य विशेषताओं से रेडियो / चेकबॉक्स तत्वों को स्पष्ट करेगा।

एक अधिक सही उत्तर (लेकिन सही नहीं) है:

function resetForm($form) {
    $form.find('input:text, input:password, input:file, select, textarea').val('');
    $form.find('input:radio, input:checkbox')
         .removeAttr('checked').removeAttr('selected');
}

// to call, use:
resetForm($('#myform')); // by id, recommended
resetForm($('form[name=myName]')); // by name

का उपयोग करते हुए :text, :radioअपने आप, आदि चयनकर्ताओं jQuery द्वारा खराब व्यवहार का वे अंत के रूप में मूल्यांकन करने में माना जाता है *:textजो यह बहुत लंबे समय तक की तुलना में यह होना चाहिए ले आता है। मुझे श्वेतसूची दृष्टिकोण पसंद है और काश मैंने अपने मूल उत्तर में इसका उपयोग किया होता। किसी भी तरह, inputचयनकर्ता के भाग, और फार्म तत्व के कैश को निर्दिष्ट करके , इसे यहां सबसे अच्छा प्रदर्शन करने वाला उत्तर बनाना चाहिए।

इस उत्तर में अभी भी कुछ खामियां हो सकती हैं, अगर चुनिंदा तत्वों के लिए लोगों का डिफ़ॉल्ट एक विकल्प नहीं है, जो एक रिक्त मान है, लेकिन यह निश्चित रूप से उतना ही सामान्य है जितना कि यह प्राप्त करने जा रहा है और इसे केस-बाय-केस आधार पर संभालने की आवश्यकता होगी ।


2
वह: इनपुट काम है ... अब मुझे पता है कि मैं उपयोग करूँगा। धन्यवाद पाओलो :) +1
एलेक्स

बहुत अच्छा, चीयर्स, लेकिन क्या यह मेरे बटनों के मूल्यों को भी स्पष्ट करेगा? बाद तक परीक्षण नहीं कर सकते।
दा .5

1
इस बिंदु पर मुझे लगता है कि जिन लोगों को आप खाली करना चाहते हैं, उन्हें सूचीबद्ध करना बेहतर होगा, इसलिए इसके बजाय: पहली पंक्ति में इनपुट आप ": पाठ,: चुनें,: रेडियो,: चेकबॉक्स"
पाओलो बर्गैनिनो

3
यहां एक समस्या यह है कि .val('')सभी मानों को रीसेट करता है, ''भले ही ये मान रेडियो बटन और चेकबॉक्स में उपयोग किए जाते हों। इसलिए जब मैं उपरोक्त कोड चलाता हूं तो मैं फॉर्म से मूल्यवान जानकारी खो देता हूं, न कि केवल उपयोगकर्ता के पास इनपुट होता है।
jeffery_the_wind

3
इस समाधान के साथ एक छोटी सी समस्या लगती है - इनपुट: ईमेल - यह एक त्रुटि देता है: त्रुटि: सिंटेक्स त्रुटि, अपरिचित अभिव्यक्ति: असमर्थित छद्म: ईमेल
स्पेंसर मार्क

390

से http://groups.google.com/group/jquery-dev/msg/2e0b7435a864beea :

$('#myform')[0].reset();

myinput.val('')यदि आपके पास इस तरह का इनपुट है, तो सेटिंग "रीसेट" 100% का अनुकरण नहीं कर सकती है:

<input name="percent" value="50"/>

उदाहरण के लिए myinput.val(''), 50 के डिफ़ॉल्ट मान वाले इनपुट पर कॉल करने से यह रिक्त स्ट्रिंग पर सेट हो जाएगा, जबकि कॉलिंग myform.reset()इसे 50 के अपने प्रारंभिक मूल्य पर रीसेट कर देगा।


4
धन्यवाद, यह एक शानदार तरीका है जिसमें एक फॉर्म क्लियर होता है: इनपुट टाइप = "फाइल"।
नवनी

27
मुझे लगता है कि 34 लोगों ने गलत समझा है कि यहां क्या सवाल है। पूछने वाला रीसेट के बारे में जानता है, फॉर्म उन मानों को "रीसेट" कर देगा जो उसकी स्क्रिप्ट याद कर रही है और उसे खाली करने के लिए मजबूर करने की जरूरत है।
पाओलो बरगीनो

48

पाओलो के स्वीकृत जवाब के साथ एक बड़ी समस्या है। विचार करें:

$(':input','#myform')
 .not(':button, :submit, :reset, :hidden')
 .val('')
 .removeAttr('checked')
 .removeAttr('selected');

.val('')लाइन भी किसी भी साफ हो जाएगा valueके चेकबॉक्स और रेडियो बटन को सौंपा। तो अगर (मेरी तरह) आप ऐसा कुछ करते हैं:

<input type="checkbox" name="list[]" value="one" />
<input type="checkbox" name="list[]" value="two" checked="checked" />
<input type="checkbox" name="list[]" value="three" />

स्वीकृत उत्तर का उपयोग करने से आपके इनपुट में बदल जाएगा:

<input type="checkbox" name="list[]" value="" />
<input type="checkbox" name="list[]" value="" />
<input type="checkbox" name="list[]" value="" />

उफ़ - मैं उस मूल्य का उपयोग कर रहा था!

यहां एक संशोधित संस्करण है जो आपके चेकबॉक्स और रेडियो मूल्यों को बनाए रखेगा:

// Use a whitelist of fields to minimize unintended side effects.
$('INPUT:text, INPUT:password, INPUT:file, SELECT, TEXTAREA', '#myFormId').val('');  
// De-select any checkboxes, radios and drop-down menus
$('INPUT:checkbox, INPUT:radio', '#myFormId').removeAttr('checked').removeAttr('selected');

1
किसी कारण से यह मेरे लिए selectतत्वों पर काम नहीं करता है । क्या आप इसे ठीक कर सकते हैं?
पेंटियम 10

2
$ ('इनपुट:: सेलेक्ट', '#myFormId')। RemoveAttr ('check')। removeAttr ('चयनित'); काम करना चाहिए
sakhunzai

यह सही जवाब है। यदि आप स्वीकृत उत्तर का उपयोग करते हैं, तो सबमिट करने के बाद फ़ॉर्म स्पष्ट हो जाता है। हालाँकि, यदि आप फिर से फॉर्म जमा करना चाहते हैं, तो आपके चेकबॉक्स या रेडियो बटन डेटा में से कोई भी कैप्चर नहीं किया जाएगा, क्योंकि आपकी मूल्य विशेषताएँ मिटा दी जाएंगी।
djblue2009

मैं यह सब पता करने के लिए मेरा उत्तर अद्यतन किया है, तुम्हारा ज्यादातर सही एक तरफ तथ्य jQuery के समय से ही का उपयोग कर हतोत्साहित है :text, :passwordआदि द्वारा स्वयं चयनकर्ताओं निर्दिष्ट किए बिना inputहिस्सा है, अन्यथा यह मूल्यांकन करता है करने के लिए *:text, जिसके माध्यम से चला जाता है हर तत्व बस के बजाय दस्तावेज़ में <input>टैग के साथinput:text
पाओलो बेरगीनो

@ पाओलो-बर्गेंटिनो आपकी आलोचना गलत है। मेरे उदाहरण तत्वों को #myFormIdदूसरे तर्क के रूप में पारित संदर्भ का उपयोग करके निरीक्षण करने के लिए $()$(':input', '#context')$('#context').filter(':input')
डांट

16

jQuery प्लगइन

मैंने एक jQuery प्लगइन बनाया है ताकि मैं इसे आसानी से कहीं भी उपयोग कर सकूं मुझे इसकी आवश्यकता है:

jQuery.fn.clear = function()
{
    var $form = $(this);

    $form.find('input:text, input:password, input:file, textarea').val('');
    $form.find('select option:selected').removeAttr('selected');
    $form.find('input:checkbox, input:radio').removeAttr('checked');

    return this;
}; 

इसलिए अब मैं इसे कॉल करके उपयोग कर सकता हूं:

$('#my-form').clear();

1
यह उत्तर सबसे अच्छा IMO है। क्या इसमें शामिल होना चाहिए .prop("checked", false)? stackoverflow.com/questions/5874652/prop-vs-attr
ल्यूक

14

क्लियरिंग फॉर्म थोड़ा मुश्किल है और उतना आसान नहीं है जितना दिखता है।

सुझाव है कि आप jQuery फॉर्म प्लगइन का उपयोग करें और इसकी स्पष्टता या रीसेट कार्यक्षमता का उपयोग करें । यह कोने के अधिकांश मामलों का ध्यान रखता है।


$ ( '# form_id') clearForm ()।; बस मुझे क्या चाहिए - धन्यवाद! "फॉर्म एलिमेंट्स को क्लियर करता है। यह विधि सभी टेक्स्ट इनपुट्स, पासवर्ड इनपुट्स और टेक्सटेरिया एलिमेंट्स को खाली कर देती है, किसी भी चुनिंदा एलिमेंट्स में सेलेक्शन को क्लियर कर देती है और सभी रेडियो और चेकबॉक्स इनपुट्स को अनचेक कर देती है।" (रीसेटफ़ॉर्म, दूसरी ओर, "फ़ॉर्म तत्व के मूल डोम विधि को लागू करके अपनी मूल स्थिति में फ़ॉर्म को रीसेट करता है।")
टायलर रिक

14

document.getElementById ( 'frm')। रीसेट ()


11
यदि आप jQuery के प्रशंसक हैं, तो इसे फिर से लिखा जा सकता है: $ ('frm') [0] .reset ()
dmitko

8
@dmitko बस पोस्टर उपयोगकर्ता नाम पर एक नज़र डालते हैं
फिलिप एम

1
जबकि यह एक फॉर्म को रीसेट करने के लिए एक अच्छा समाधान है, यह वास्तव में उस प्रश्न का समाधान नहीं है जो पूछा जा रहा है।
ल्यूक


5

आपको शुरू करने के लिए यहां कुछ है

$('form') // match your correct form 
.find('input[type!=submit], input[type!=reset]') // don't reset submit or reset
.val(''); // set their value to blank

बेशक, यदि आपके पास चेकबॉक्स / रेडियो बटन हैं, तो आपको उन्हें शामिल करने और सेट करने के लिए इसे संशोधित करना होगा .attr({'checked': false});

पाओलो का उत्तर संपादित करना अधिक संक्षिप्त है। मेरा उत्तर अधिक चिंताजनक है क्योंकि मुझे :inputचयनकर्ता के बारे में नहीं पता था, और न ही मैंने केवल चेक की गई विशेषता को हटाने के बारे में सोचा था।


5

सत्यापन प्लगइन का उपयोग करने पर विचार करें - यह बहुत अच्छा है! और फॉर्म को रीसेट करना सरल है:

var validator = $("#myform").validate();
validator.resetForm();

4

मुझे यह काम अच्छा लगता है।

$(":input").not(":button, :submit, :reset, :hidden").each( function() {
    this.value = this.defaultValue;     
});

सिवाय इसके कि यह चेकबॉक्स, रेडियो बटन और चयन के लिए काम नहीं करता है।
kritzikratzi

4

मूल रूप से प्रदान किए गए समाधानों में से कोई भी मुझे खुश नहीं करता है। जैसा कि कुछ लोगों ने बताया कि वे इसे रीसेट करने के बजाय फॉर्म को खाली कर देते हैं।

हालाँकि, कुछ जावास्क्रिप्ट गुण हैं जो मदद करते हैं:

  • पाठ फ़ील्ड के लिए defaultValue
  • चेकबॉक्स और रेडियो बटन के लिए defaultChecked
  • डिफ़ॉल्ट विकल्प विकल्पों के लिए चुना गया

जब पृष्ठ लोड किया गया था, तो एक फ़ील्ड के पास यह मान संग्रहीत करता है।

jQuery प्लगइन लिखना अब तुच्छ है: (अधीर के लिए ... यहाँ एक डेमो http://jsfiddle.net/kritzikratzi/N8fEF/1/ ) है

प्लगइन-कोड

(function( $ ){
    $.fn.resetValue = function() {  
        return this.each(function() {
            var $this = $(this); 
            var node = this.nodeName.toLowerCase(); 
            var type = $this.attr( "type" ); 

            if( node == "input" && ( type == "text" || type == "password" ) ){
                this.value = this.defaultValue; 
            }
            else if( node == "input" && ( type == "radio" || type == "checkbox" ) ){
                this.checked = this.defaultChecked; 
            }
            else if( node == "input" && ( type == "button" || type == "submit" || type="reset" ) ){ 
                // we really don't care 
            }
            else if( node == "select" ){
                this.selectedIndex = $this.find( "option" ).filter( function(){
                    return this.defaultSelected == true; 
                } ).index();
            }
            else if( node == "textarea" ){
                this.value = this.defaultValue; 
            }
            // not good... unknown element, guess around
            else if( this.hasOwnProperty( "defaultValue" ) ){
                this.value = this.defaultValue; 
            }
            else{
                // panic! must be some html5 crazyness
            }
        });
    }
} )(jQuery);

प्रयोग

// reset a bunch of fields
$( "#input1, #input2, #select1" ).resetValue(); 

// reset a group of radio buttons
$( "input[name=myRadioGroup]" ).resetValue(); 

// reset all fields in a certain container
$( "#someContainer :input" ).resetValue(); 

// reset all fields
$( ":input" ).resetValue(); 

// note that resetting all fields is better with the javascript-builtin command: 
$( "#myForm" ).get(0).reset(); 

कुछ नोट ...

  • मैंने नए html5 फॉर्म एलिमेंट्स में नहीं देखा है, कुछ को विशेष उपचार की आवश्यकता हो सकती है, लेकिन एक ही विचार काम करना चाहिए।
  • तत्वों को सीधे संदर्भित करने की आवश्यकता है। यानी $( "#container" ).resetValue()काम नहीं करेगा। $( "#container :input" )इसके बजाय हमेशा उपयोग करें ।
  • जैसा कि ऊपर बताया गया है, यहाँ एक डेमो है: http://jsfiddle.net/kritzikratzi/N8fEF/1/

4

आप पा सकते हैं कि यह वास्तव में jQuery के बिना आसान हल है।

नियमित जावास्क्रिप्ट में, यह उतना ही सरल है:

document.getElementById('frmitem').reset();

मैं हमेशा याद रखने की कोशिश करता हूं कि जब हम अपने कोडिंग को बढ़ाने और गति देने के लिए jQuery का उपयोग करते हैं, तो कभी-कभी यह वास्तव में तेज नहीं होता है। उन मामलों में, किसी अन्य विधि का उपयोग करना अक्सर बेहतर होता है।


4

मैंने फ्रांसिस लुईस के अच्छे समाधान का थोड़ा बदलाव किया । उसका समाधान क्या नहीं करता है, ड्रॉप-डाउन चयनों को रिक्त पर सेट किया जाता है। (मुझे लगता है कि जब ज्यादातर लोग "स्पष्ट" करना चाहते हैं, तो वे शायद सभी मूल्यों को खाली करना चाहते हैं।) यह एक ऐसा करता है .find('select').prop("selectedIndex", -1)

$.fn.clear = function()
{
    $(this).find('input')
            .filter(':text, :password, :file').val('')
            .end()
            .filter(':checkbox, :radio')
                .removeAttr('checked')
            .end()
        .end()
    .find('textarea').val('')
        .end()
    .find('select').prop("selectedIndex", -1)
        .find('option:selected').removeAttr('selected')
    ;
    return this;
};

2

मैं सामान्य रूप से प्रपत्र में एक छिपा हुआ रीसेट बटन जोड़ता हूं। जब बस जरूरत हो: $ ('# रीसेट')। क्लिक करें ();


1
आप उस पोस्ट का उत्तर क्यों देते हैं जिसका उत्तर दिया गया है, और 2 साल पहले स्वीकृत किया गया है? और इस सहित, आपकी पोस्ट भी निम्न गुणवत्ता वाली है
रेने पॉट

यह सीधे कॉल करने की तुलना में बहुत अधिक अस्पष्ट है। सीधे () सीधे। इस हैक की कोई आवश्यकता नहीं है।
kritzikratzi

2

$(document).ready()स्थिति के लिए सबसे अधिक मतदान जवाब का संशोधन :

$('button[type="reset"]').click(function(e) {
    $form = $(this.form);
    $form.find('input:text, input:password, input:file, select, textarea').val('');
    $form.find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected');
    e.preventDefault();
});

2

बस इस jQuery Trigger eventतरह का उपयोग करें:

$('form').trigger("reset");

यह चेकबॉक्स, रेडियोबॉटन, टेक्स्टबॉक्स आदि को रीसेट कर देगा ... अनिवार्य रूप से यह आपके फॉर्म को डिफ़ॉल्ट स्थिति में बदल देता है। बस चयनकर्ता के #ID, Class, elementअंदर डाल दिया jQuery


1

इसने मेरे लिए काम किया, pyrotex answer didn 'रीसेट फ़ील्ड चुनें, उसका लिया, यहाँ मेरा संपादन है:

// Use a whitelist of fields to minimize unintended side effects.
$(':text, :password, :file', '#myFormId').val('');  
// De-select any checkboxes, radios and drop-down menus
$(':input,select option', '#myFormId').removeAttr('checked').removeAttr('selected');
//this is for selecting the first entry of the select
$('select option:first', '#myFormId').attr('selected',true);

1

मैं पाओलो बैरगीनो समाधान का उपयोग कर रहा हूं जो महान है, लेकिन कुछ tweaks के साथ ... विशेष रूप से एक आईडी के बजाय फॉर्म नाम के साथ काम करने के लिए।

उदाहरण के लिए:

function jqResetForm(form){
   $(':input','form[name='+form+']')
   .not(':button, :submit, :reset, :hidden')
   .val('')
   .removeAttr('checked')
   .removeAttr('selected');
}

अब जब मैं इसका इस्तेमाल करना चाहता हूं कर सकता हूं

<span class="button" onclick="jqResetForm('formName')">Reset</span>

जैसा कि आप देखते हैं, यह किसी भी रूप के साथ काम करता है, और क्योंकि मैं बटन बनाने के लिए एक सीएसएस शैली का उपयोग कर रहा हूं, जिस पर क्लिक करने पर पृष्ठ ताज़ा नहीं होगा। एक बार फिर आपके इनपुट के लिए पाओलो को धन्यवाद। एकमात्र समस्या यह है कि अगर मेरे पास फ़ॉर्म में डिफ़ॉल्ट मान हैं।


1

मैंने नीचे दिए गए घोल का इस्तेमाल किया और यह मेरे लिए काम आया (पारंपरिक javascript को jQuery के साथ मिलाकर)

$("#myformId").submit(function() {
    comand="window.document."+$(this).attr('name')+".reset()";
    setTimeout("eval(comando)",4000);
})

1

मैं PHP में सिर्फ एक मध्यवर्ती हूं, और JQuery जैसी एक नई भाषा में गोता लगाने के लिए थोड़ा आलसी हूं, लेकिन निम्नलिखित सरल और सुरुचिपूर्ण समाधान नहीं है?

<input name="Submit1" type="submit" value="Get free quote" />
<input name="submitreset" type="submit" value="Reset" />

दो अलग-अलग प्रयोजनों के साथ दो सबमिट बटन नहीं होने का कारण नहीं देख सकते। तो बस:

if ($_POST['submitreset']=="Reset") {
$_source = "--Choose language from--";
$_target = "--Choose language to--"; }

आप अपने मूल्यों को फिर से परिभाषित करें जो भी डिफ़ॉल्ट माना जाता है।


0

एक विधि जिसका मैंने काफी बड़े रूप (50+ फ़ील्ड) पर उपयोग किया था, बस AJAX के साथ फ़ॉर्म को फिर से लोड करना था, मूल रूप से सर्वर पर कॉल करना और अपने डिफ़ॉल्ट मानों के साथ फ़ील्ड को वापस करना। यह जेएस के साथ प्रत्येक क्षेत्र को हथियाने की कोशिश करने और फिर इसे डिफ़ॉल्ट मूल्य पर सेट करने की तुलना में बहुत आसान है। इसने मुझे डिफ़ॉल्ट मानों को एक स्थान पर रखने की अनुमति भी दी - सर्वर का कोड। इस साइट पर, खाते के लिए सेटिंग्स के आधार पर कुछ अलग चूक भी थे और इसलिए मुझे इन्हें जेएस को भेजने के बारे में चिंता करने की आवश्यकता नहीं थी। एकमात्र छोटा मुद्दा जो मुझे निपटना था, कुछ सुझाव फ़ील्ड थे जिन्हें AJAX कॉल के बाद आरंभीकरण की आवश्यकता थी, लेकिन बड़ी बात नहीं।


0

ये सभी उत्तर अच्छे हैं लेकिन इसे करने का पूर्ण आसान तरीका नकली रीसेट के साथ है, आप लिंक और रीसेट बटन का उपयोग करते हैं।

अपने वास्तविक रीसेट बटन को छिपाने के लिए बस कुछ सीएसएस जोड़ें।

input[type=reset] { visibility:hidden; height:0; padding:0;}

और फिर आपके लिंक पर आप निम्न प्रकार से जोड़ते हैं

<a href="javascript:{}" onclick="reset.click()">Reset form</a>

<input type="reset" name="reset" id="reset" /><!--This input button is hidden-->

उम्मीद है की यह मदद करेगा! ए।


0
<script type="text/javascript">
$("#edit_name").val('default value');
$("#edit_url").val('default value');
$("#edit_priority").val('default value');
$("#edit_description").val('default value');
$("#edit_icon_url option:selected").removeAttr("selected");
</script>

0

चेकबॉक्स और चयन के लिए रिफ्रेश के साथ:

$('#frm').find('input:text, input:password, input:file, textarea').val('');
$('#frm').find('input:radio, input:checkbox').attr("checked",false).checkboxradio("refresh");
$('#frm').find('select').val('').selectmenu('refresh');

0

मुझे वही समस्या हो रही थी और पाओलो के पद ने मेरी मदद की, लेकिन मुझे एक चीज को समायोजित करने की आवश्यकता थी। आईडी एडवांस्डटेक्ससर्च के साथ मेरे फॉर्म में केवल इनपुट फ़ील्ड शामिल हैं और एक सत्र से मान प्राप्त होते हैं। किसी कारण के लिए निम्नलिखित मेरे लिए काम नहीं किया:

$("#advancedindexsearch").find("input:text").val("");

यदि मैंने इसके बाद एक चेतावनी दी, तो मैंने उन मूल्यों को देखा, जहां सही तरीके से हटा दिया गया था, लेकिन बाद में वे फिर से बदल गए। मैं अभी भी नहीं जानता कि कैसे या क्यों लेकिन निम्न पंक्ति ने मेरे लिए चाल चली:

$("#advancedindexsearch").find("input:text").attr("value","");

0

पाओलो का जवाब तारीख लेने वालों के लिए नहीं है, इसे इसमें जोड़ें:

$form.find('input[type="date"]').val('');

0

मैंने पाओलो बर्गेंटिनो के मूल उत्तर पर थोड़ा सुधार किया

function resetFormInputs(context) {
    jQuery(':input', context)
    .removeAttr('checked')
    .removeAttr('selected')
    .not(':button, :submit, :reset, :hidden')
    .each(function(){
         jQuery(this).val(jQuery(this).prop('defautValue'));
    });
}

इस तरह, मैं फ़ंक्शन के लिए किसी भी संदर्भ तत्व को पारित कर सकता हूं। मैं उदाहरण के लिए पूरे फॉर्म या केवल एक निश्चित क्षेत्र को रीसेट करने में सक्षम हूं:

resetFormInputs('#form-id'); // entire form
resetFormInputs('.personal-info'); // only the personal info field set

साथ ही, इनपुट के डिफ़ॉल्ट मानों को बरकरार रखा जाता है।


0

यहाँ मेरा समाधान है, जो नए html5 इनपुट-प्रकारों के साथ भी काम करता है:

/**
 * removes all value attributes from input/textarea/select-fields the element with the given css-selector
 * @param {string} ele css-selector of the element | #form_5
 */
function clear_form_elements(ele) {
    $(ele).find(':input').each(function() {
        switch (this.type) {
            case 'checkbox':
            case 'radio':
                this.checked = false;
            default:
                $(this).val('');
                break;
        }
    });
}

1
आपको breakनीचे checkboxऔर radioमामलों को स्थानांतरित करना चाहिए । इसकी वर्तमान स्थिति में इसकी कोई आवश्यकता नहीं है।
bergie3000

0

स्वीकृत उत्तर को लागू करते हुए, यदि आप SELECT2 प्लगइन का उपयोग करते हैं, तो आपको बदलाव करने के लिए select2 स्क्रिप्ट को वापस बुलाने की आवश्यकता है, सभी select2 फ़ील्ड हैं:

function resetForm(formId){
        $('#'+formId).find('input:text, input:password, input:file, select, select2, textarea').val('');
        $('#'+formId).find('input:radio, input:checkbox').removeAttr('checked').removeAttr('selected');
        $('.select2').select2();
    }

-1
$(this).closest('form').find('input,textarea,select').not(':image').prop('disabled', true);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.