2009-03-09 19 views
5

यदि मेरे पास एक बटन है जो jquery स्क्रिप्ट को सेट करता है, तो यह सुनिश्चित करने का कोई तरीका है कि स्क्रिप्ट पूर्ण होने तक बटन निष्क्रिय है?JQuery स्क्रिप्ट लोड समय

उत्तर

10

अपनी स्क्रिप्ट (शायद बटन के क्लिक करें घटना पर) की शुरुआत में कहीं न कहीं, सही करने के लिए बटन के विकलांग विशेषता निर्धारित:

$("#mybutton").attr("disabled", true); 

तब, जब पूरा, उस गुण को दूर:

$("#mybutton").removeAttr("disabled"); 

संपादित करें:

यदि आप (थोड़ा) फैंसी प्राप्त करना चाहते हैं, तो आप काम करते समय बटन के टेक्स्ट को बदलें। यदि यह एक छवि बटन है, तो आप src को एक दोस्ताना "कृपया प्रतीक्षा करें" संदेश में बदल सकते हैं।

$("#mybutton").click(function() { 
    var origVal = $(this).attr("value"); 

    $(this).attr("value", "Please wait..."); 
    $(this).attr("disabled", true); 

    //Do your processing. 

    $(this).removeAttr("disabled"); 
    $(this).attr("value", origVal); 
}); 
33

यह एक ऐसा क्षेत्र है जहां मैं jQuery का विस्तार करना चाहते है:

$.fn.disable = function() { 
    return this.each(function() { 
     if (typeof this.disabled != "undefined") this.disabled = true; 
    }); 
} 

$.fn.enable = function() { 
    return this.each(function() { 
     if (typeof this.disabled != "undefined") this.disabled = false; 
    }); 
} 

और फिर आप कर सकते हैं:

$("#button").disable(); 
$("#button").enable(); 

मैं अपने आप को लगता है यहाँ बटन पाठ संस्करण का एक उदाहरण है नियंत्रण को अक्षम/सक्षम करना बहुत कुछ।

+0

मैं इस समाधान को प्राथमिकता देता हूं। पाठ को बदलने के लिए आप आसानी से फ़ंक्शन को भी बढ़ा सकते हैं। – Raithlin

3

आपके फ़ंक्शन के लिए धन्यवाद क्लेटस। मैंने आपके फ़ंक्शन का उपयोग किया है और अक्षम तत्वों को टॉगल करने के लिए अपना स्वयं का निर्माण किया है।

$.fn.toggleDisable = function() { 
    return this.each(function() { 
     if (typeof this.disabled != "undefined"){ 
       if(this.disabled){ 
        this.disabled = false; 
       }else{ 
        this.disabled = true; 
       } 
     } 
    }); 
} 
संबंधित मुद्दे