मैं एक जावास्क्रिप्ट-भारी तरीके से चेक बॉक्स और रेडियो बटन के लिए आसानी से राज्य प्राप्त करने के लिए आया हूं। यह फ़ायरफ़ॉक्स, ओपेरा, सफारी, Google क्रोम के वर्तमान संस्करणों के साथ-साथ IE के वर्तमान और पिछले संस्करणों (IE7 के नीचे) के खिलाफ परीक्षण किया गया है।
आप जो अक्षम संपत्ति पूछते हैं, उसका उपयोग क्यों नहीं करते? पृष्ठ को प्रिंट करते समय, अक्षम इनपुट तत्व एक ग्रे रंग में सामने आते हैं। जिस ग्राहक के लिए यह लागू किया गया था वह सभी तत्वों को एक ही रंग से बाहर निकालना चाहता था।
मुझे यकीन नहीं है कि मुझे स्रोत कोड यहां पोस्ट करने की अनुमति है, क्योंकि मैंने कंपनी के लिए काम करते समय इसे विकसित किया है, लेकिन मैं निश्चित रूप से अवधारणाओं को साझा कर सकता हूं।
Onmousedown ईवेंट्स के साथ, आप क्लिक एक्शन बदलने से पहले चयन स्थिति पढ़ सकते हैं। इसलिए आप इस जानकारी को संग्रहीत करते हैं और फिर इन राज्यों को एक ऑनक्लिक ईवेंट के साथ पुनर्स्थापित करते हैं।
<input id="r1" type="radio" name="group1" value="r1" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);" checked="checked">Option 1</input>
<input id="r2" type="radio" name="group1" value="r2" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);">Option 2</input>
<input id="r3" type="radio" name="group1" value="r3" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);">Option 3</input>
<input id="c1" type="checkbox" name="group2" value="c1" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);" checked="checked">Option 1</input>
<input id="c2" type="checkbox" name="group2" value="c2" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);">Option 2</input>
<input id="c3" type="checkbox" name="group2" value="c3" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);" checked="checked">Option 3</input>
इस का जावास्क्रिप्ट हिस्सा तब इस तरह काम करेगा (फिर से केवल अवधारणाएं):
var selectionStore = new Object(); // keep the currently selected items' ids in a store
function storeSelectedRadiosForThisGroup(elementName) {
// get all the elements for this group
var radioOrSelectGroup = document.getElementsByName(elementName);
// iterate over the group to find the selected values and store the selected ids in the selectionStore
// ((radioOrSelectGroup[i].checked == true) tells you that)
// remember checkbox groups can have multiple checked items, so you you might need an array for the ids
...
}
function setSelectedStateForEachElementOfThisGroup(elementName) {
// iterate over the group and set the elements checked property to true/false, depending on whether their id is in the selectionStore
...
// make sure you return false here
return false;
}
अब आप इनपुट तत्वों के ऑन्कलिक और ऑनमॉस्डाउन गुणों को बदलकर रेडियो बटन / चेकबॉक्स को सक्षम / अक्षम कर सकते हैं।