JQuery সহ বহু-পর্যায়ের ফর্মটি পুনরায় সেট করা


349

আমার কাছে এই পদ্ধতিতে কোডিং করা একটি স্ট্যান্ডার্ড রিসেট বোতাম সহ একটি ফর্ম রয়েছে:

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

সমস্যাটি হ'ল, বলা হয়েছে যে ফর্মটি বহু-পর্যায়ের ধরণের ধরণের, সুতরাং যদি কোনও ব্যবহারকারী কোনও মঞ্চ পূরণ করে এবং পরে ফিরে আসে, ক্লিয়ার বোতামটি ক্লিক করা হলে বিভিন্ন ক্ষেত্রের 'স্মরণযোগ্য' মানগুলি পুনরায় সেট হবে না।

আমি ভাবছি যে সমস্ত ক্ষেত্রের লুপ নেওয়ার জন্য jQuery ফাংশন সংযুক্ত করা এবং তাদের 'ম্যানুয়ালি' মুছে ফেলা কৌশলটি করতে পারে। আমি ফর্মটির মধ্যে ইতিমধ্যে jQuery ব্যবহার করছি, তবে কেবল গতিতে উঠছি এবং তাই এটি সম্পর্কে কীভাবে করবেন তা নিশ্চিত নই, পৃথকভাবে প্রতিটি ক্ষেত্র আইডি দ্বারা উল্লেখ করা ছাড়াও, যা খুব কার্যকর বলে মনে হয় না।

কোন সাহায্যের জন্য টিআইএ।


1
@ দা 5 আইডি: মনে রাখার মতো কিছু হ'ল আমার স্বীকৃত হ'ল লুকানো উপাদানগুলিও খালি হচ্ছে! আপনি সম্ভবত এটি চান না, সুতরাং কেবল যুক্ত করুন: not()আপনার ফর্মটির কোনও লুকানো ইনপুট থাকলে এই টিতে লুকানো থাকে।
পাওলো বার্গান্টিনো

ধন্যবাদ পাওলো, আমি মনে রাখব যে খুব ভাল পয়েন্ট।
da5id

2
ভাল উত্তর খুঁজছেন যে কেউ, সাবধান। গৃহীত উত্তরটি সঠিক পথে রয়েছে তবে এতে বাগ রয়েছে। এখন পর্যন্ত সর্বাধিক ভোট দেওয়া উত্তরটি প্রশ্নটি বুঝতে পারেনি। অন্যান্য অনেক উত্তর ফাঁকা / পরিষ্কার দিয়ে ভুল বোঝাবুঝি এবং বিভ্রান্ত রিসেট

1
Mystkine ডান উভয় প্রশ্ন এবং বর্তমানে গৃহীত উত্তর গলিয়ে মিশিয়ে এর ক্লিয়ারিং সঙ্গে রিসেট - আমার মনে হয় প্রশ্নকারী সত্যিই, একটি মাল্টি-পর্যায় ফর্ম রিসেট সমাধান খুঁজছেন ছিল মূল সত্ত্বেও TITLE- আমি শিরোনাম অনুসারে আপডেট করেছি।
ইয়ারিন

ওয়াকিবহাল ওয়াকিবহাল, এই প্রশ্নের বয়স সত্ত্বেও আমি একটি নতুন উত্তর যে জুড়েছেন আসলে একটি ফর্ম ... নির্বিচারে অংশের রিসেট stackoverflow.com/questions/680241/...
kritzikratzi

উত্তর:


502

মার্চ ২০১২ এ আপডেট হয়েছে।

সুতরাং, আমি মূলত এই প্রশ্নের উত্তর দেওয়ার দু'বছর পরে আমি ফিরে এসে দেখি যে এটি প্রায় একটি বড় জগাখিচায় পরিণত হয়েছে। আমি মনে করি এটি প্রায় ফিরে এসে আমি আমার উত্তরটি সত্যই সঠিক করে তুলছি কারণ এটি সর্বাধিক উন্নত + গৃহীত।

রেকর্ডটির জন্য, টিটির উত্তরটি ভুল কারণ এটি মূল পোস্টার যা বলেছিল তা নয় - এটি সঠিক যে নেটিভ রিসেট () পদ্ধতিটি ব্যবহার করে কোনও ফর্ম পুনরায় সেট করা সম্ভব, তবে এই প্রশ্নটি মনে রাখার বাইরে কোনও ফর্ম সাফ করার চেষ্টা করছে আপনি যদি এভাবে পুনরায় সেট করেন তবে মানগুলিতে ফর্মটিতে থাকবে। এজন্য একটি "ম্যানুয়াল" রিসেট প্রয়োজন। আমি ধরে নিয়েছি বেশিরভাগ লোকেরা গুগল অনুসন্ধান থেকে এই প্রশ্নের অবসান ঘটেছে এবং রিসেট () পদ্ধতিটি সত্যই সন্ধান করছে, তবে ওপি যে নির্দিষ্ট ক্ষেত্রে কথা বলছে তাতে এটি কার্যকর হয় না।

আমার মূল উত্তরটি ছিল:

// 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
অ্যালেক্স

খুব সুন্দর, চিয়ারস, তবে এটি কি আমার বোতামগুলির মানগুলিও সাফ করবে? পরে পরীক্ষা করা যাবে না।
da5id

1
এই মুহুর্তে আমি মনে করি আপনি কেবল খালি করতে চান তাদের তালিকাভুক্ত করা ভাল, তাই পরিবর্তে: আপনি যে প্রথম লাইনে করছেন ইনপুট ": পাঠ্য:: নির্বাচন করুন: রেডিও,: চেকবক্স"
পাওলো বার্গান্টিনো

3
এখানে একটি সমস্যা হ'ল এই মানগুলি রেডিও বোতাম এবং চেকবক্সগুলিতে ব্যবহৃত .val('')হয় ''এমনকি সমস্ত মানকে পুনরায় সেট করে । সুতরাং আমি যখন উপরের কোডটি চালাচ্ছি তখন আমি ফর্মটি থেকে মূল্যবান তথ্য হারাব না, কেবল ব্যবহারকারীটির ইনপুট কী আছে।
jeffery_t__ind

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
$ (': ইনপুট,: সিলেক্ট', '# মাইফর্মআইডি')। রিমুভ অ্যাট্রিক ('চেকড')। রিমুথআটার ('নির্বাচিত'); কাজ করা উচিত
sakhunzai

এটা সঠিক উত্তর. আপনি যদি স্বীকৃত উত্তর ব্যবহার করেন তবে আপনার জমা দেওয়ার পরে ফর্মটি সাফ হয়ে যায়। তবে আপনি যদি ফর্মটি আবার জমা দিতে চান তবে আপনার মান বৈশিষ্ট্যগুলি মুছে ফেলা হবে বলে আপনার চেকবক্স বা রেডিও বোতামের কোনও ডেটা ধরা যাবে না।
djblue2009

আমি সব এই ঠিকানায় আমার উত্তর আপডেট করেছি, পুলিশের বেশিরভাগই সঠিক সরাইয়া আসলে jQuery থেকে জোরালোভাবে ব্যবহার নিরুৎসাহিত হয় :text, :passwordইত্যাদি নিজেরাই নির্বাচকরা উল্লেখ না করে inputঅংশ, অন্যথায় এটি মূল্যায়ণ করতে *:text, যার মাধ্যমে যায় যে উপাদান মাত্র পরিবর্তে নথিতে <input>ট্যাগ সহinput:text
পাওলো বার্গান্টিনো

@ পাওলো-বার্গান্টিনো আপনার সমালোচনা ভুল। আমার উদাহরণ উপাদান scoping ব্যবহার করছেন পরিদর্শন করা #myFormIdপ্রসঙ্গে দ্বিতীয় যুক্তি হিসাবে পাস $()- যে $(':input', '#context')- এই অভিন্ন$('#context').filter(':input')
leepowers

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
এই উত্তরটি সেরা আইএমও। এটিও অন্তর্ভুক্ত করা উচিত .prop("checked", false)? stackoverflow.com/questions/5874652/prop-vs-attr
লূক

14

ফর্মগুলি সাফ করা কিছুটা জটিল এবং যতটা সহজ লাগে তত সহজ নয়।

আপনাকে jQuery ফর্ম প্লাগইন ব্যবহার করার এবং এর ক্লিয়ারফর্ম বা রিসেটফর্ম কার্যকারিতা ব্যবহার করার পরামর্শ দিন । এটি বেশিরভাগ কোণার কেস যত্ন নেয়।


$ ( '# form_id') clearForm ()। আমার যা প্রয়োজন তা-ই ধন্যবাদ! "ফর্ম উপাদানগুলিকে সাফ করে দেয় This (অন্যদিকে রিসেটফর্ম, "ফর্ম উপাদানটির নেটিভ ডোম পদ্ধতিতে অনুরোধ করে ফর্মটিকে তার মূল অবস্থায় পুনরায় সেট করে" ")
টাইলার রিক

14

document.getElementById ( 'এফ আর এম')। রিসেট ()


11
আপনি যদি jQuery এর অনুরাগী হন তবে এটিতে আবারও লেখা যেতে পারে: $ ('frm') [0]। রিসেট ()
dmitko

8
@ ডিমিটকো শুধু পোস্টার ব্যবহারকারীর নাম দেখুন
ফিলিপ এম

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;     
});

এটি চেকবক্স, রেডিও বোতাম এবং নির্বাচনের জন্য কাজ করে না except
kritzikratzi

4

মূলত কিছুই না প্রদান সমাধানের আমাকে খুশি করে তোলে। কিছু লোক দ্বারা চিহ্নিত হিসাবে তারা ফর্মটি পুনরায় সেট করার পরিবর্তে খালি করে।

তবে কয়েকটি জাভাস্ক্রিপ্ট বৈশিষ্ট্য রয়েছে যা সাহায্য করে:

  • পাঠ্য ক্ষেত্রের জন্য defaultValue
  • ডিফল্ট চেকবক্স এবং রেডিও বোতামগুলির জন্য পরীক্ষা করা
  • ডিফল্ট নির্বাচন বিকল্পের জন্য নির্বাচিত

এই পৃষ্ঠাটি লোড করার সময় একটি ক্ষেত্রের মানটি সংরক্ষণ করে।

একটি jQuery প্লাগইন লেখা এখন তুচ্ছ: (অধৈর্য জন্য ... এখানে একটি ডেমো http://jsfiddle.net/ প্রকৃতিজিক্রতজি / এন 8fEF/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(); 

কিছু নোট ...

  • আমি নতুন এইচটিএমএল 5 ফর্ম উপাদানগুলির দিকে নজর রাখিনি, কারও কারও জন্য বিশেষ চিকিত্সার প্রয়োজন হতে পারে তবে একই ধারণাটি কার্যকর করা উচিত।
  • উপাদানগুলি সরাসরি উল্লেখ করা দরকার। অর্থাত্ $( "#container" ).resetValue()কাজ করবে না। সর্বদা $( "#container :input" )পরিবর্তে ব্যবহার করুন।
  • উপরের হিসাবে উল্লেখ করা হয়েছে, এখানে একটি ডেমো হল: http://jsfiddle.net/kritzikratzi/N8fEF/1/

4

আপনি দেখতে পাবেন যে এটি jQuery ছাড়াই আসলে সহজ সমাধান solved

নিয়মিত জাভাস্ক্রিপ্টে এটি এতটা সহজ:

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

আমি ফর্মটিতে সাধারণত একটি লুকানো রিসেট বোতাম যুক্ত করি। যখন দরকার কেবল: $ ('# রিসেট') click ক্লিক করুন ();


1
আপনি কেন এমন পোস্টের উত্তর দেন যা উত্তর পেয়েছে, এবং 2 বছর আগে অনুমোদিত হয়েছে? এবং এটি সহ, আপনার
পোস্টটিও

এটি কেবলমাত্র form.reset () সরাসরি কল করার চেয়ে অনেক বেশি অস্পষ্ট। এই হ্যাক জন্য কোন প্রয়োজন নেই।
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

এটি আমার পক্ষে কাজ করেছে, পাইরোটেক্স উত্তরটি 'নির্বাচিত ক্ষেত্রগুলিকে পুনরায় সেট করে না, আমার এখানে সম্পাদনা করেছে':

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

আমি পাওলো বার্গান্টিনো সলিউশনটি ব্যবহার করছি যা দুর্দান্ত তবে কয়েকটি টুইটের সাথে ... বিশেষত ফর্মের নামের সাথে আইডি পরিবর্তে কাজ করার জন্য।

উদাহরণ স্বরূপ:

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

আমি নীচের সমাধানটি ব্যবহার করেছি এবং এটি আমার জন্য কাজ করেছে (jQuery এর সাথে traditionalতিহ্যবাহী জাভাস্ক্রিপ্ট মিশ্রিত করে)

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

1

আমি পিএইচপি-তে কেবলমাত্র একটি মধ্যবর্তী, এবং 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--"; }

আপনি কেবলমাত্র নিজের মানগুলি পূর্বনির্ধারিত করুন যা পূর্বনির্ধারিত বলে মনে করা হয় to


0

আমি মোটামুটি বৃহত্তর ফর্ম (50+ ক্ষেত্র) এ ব্যবহার করার একটি পদ্ধতি হ'ল মূলত সার্ভারে ফিরে কল করা এবং কেবলমাত্র তাদের ডিফল্ট মান সহ ক্ষেত্রগুলি ফিরিয়ে দেওয়া, এজেএক্সের সাহায্যে ফর্মটি পুনরায় লোড করা। এটি জেএস দিয়ে প্রতিটি ক্ষেত্র দখল করার চেষ্টা করা এবং তারপরে এটির ডিফল্ট মান হিসাবে সেট করার চেয়ে অনেক সহজ। এটি আমাকে ডিফল্ট মানগুলি এক জায়গায় রাখার অনুমতি দেয় - সার্ভারের কোড। এই সাইটে, অ্যাকাউন্টের সেটিংসের উপর নির্ভর করে কিছু আলাদা ডিফল্ট ছিল এবং তাই এগুলি জেএসে প্রেরণে আমাকে উদ্বিগ্ন হওয়ার দরকার ছিল না। আমি কেবলমাত্র ছোট সমস্যাটিই মোকাবিলা করেছিলাম সেগুলি ছিল এমন কিছু প্রস্তাবিত ক্ষেত্র যা এজেএক্স কলের পরে সূচনা প্রয়োজন, তবে এটি কোনও বড় বিষয় নয়।


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

এখানে আমার সমাধানটি দেওয়া হয়েছে, এটি নতুন এইচটিএমএল 5 ইনপুট-প্রকারের সাথেও কাজ করে:

/**
 * 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নীচে সরানো উচিতcheckboxradio কেস এবং কেসগুলির । এটির বর্তমান অবস্থানে কোনও প্রয়োজন নেই।
bergie3000

0

গৃহীত উত্তরের পরিপূরক করা, আপনি যদি SELECT2 প্লাগইন ব্যবহার করেন তবে পরিবর্তনগুলি করার জন্য আপনার সিলেক্ট 2 স্ক্রিপ্টটি রিকল করতে হবে সমস্ত নির্বাচন 2 ক্ষেত্র:

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);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.