<a title="http://www.cssrain.cn" href="http://www.cssrain.cn/attachments/month_0807/v2008724172652.jpg" rel="lightbox"><img alt="" src="http://www.cssrain.cn/attachments/month_0807/v2008724172652.jpg" border="0"></a><br><br>crir = { <br> init: function() { <br> arrLabels = document.getElementsByTagName('label'); <br><br> searchLabels: <br> for (var i=0; i<arrlabels.length i> // for 属性に基づいて入力要素を取得しますラベルタグ <br> if ( arrLabels[i].getAttributeNode('for') && arrLabels[i].getAttributeNode('for').value != '') { <br> labelElementFor = arrLabels[i].getAttributeNode('for').value; <br> inputElement = document.getElementById(labelElementFor); <br> } <br> else { <br> 続く searchLabels; <br> } <br><br> inputElementClass = inputElement.className; <br><br> // 入力が非表示に指定されている場合は、それが開始されます <br> if (inputElementClass == 'crirHiddenJS') <br> inputElement.className = 'crirHidden'; <br><br> inputElementType = inputElement.getAttributeNode('type').value; <br><br> // 適切なイベント リスナーを入力要素に追加します <br> if (inputElementType == "checkbox") { <br> inputElement.on click = crir.toggleCheckboxLabel; <br> <br> else { <br> inputElement.onclick = crir.toggleRadioLabel; <br> <br><br> // 初期ラベル状態を設定します <br> if (inputElement.checked) <br> { if (inputElementType == 'checkbox') { arrLabels[i].className = 'checkbox_checked' } <br> else { arrLabels[i].className = 'radio_checked' } <br> }<br> else { <br> if (inputElementType == 'checkbox') { arrLabels[i].className = 'checkbox_unchecked'} <br> else { arrLabels[i].className = 'radio_unchecked' } <br> } <br> } <br> else if (inputElement.nodeName != 'SELECT' && inputElement.getAttributeNode('type').value == 'radio') { // これは、無線が非表示ではなく、ある隠された無線のグループでも機能します。 <br> arrLabels[i].onclick = crir.toggleRadioLabel; <br> inputElement.onclick = crir.toggleRadioLabel; <br> } <br> } <br> }, <br><br> findLabel: function (inputElementID) { <br> arrLabels = document.getElements ByTagName('ラベル'); <br><br> searchLoop: <br> for (var i=0; i<arrlabels.length i> if (arrLabels[i].getAttributeNode('for') && arrLabels[i].getAttribut eノード('for').value == inputElementID) { <br> return arrLabels[i]; <br> searchLoop を中断します。 <br> } <br> } <br> }, <br><br> toggleCheckboxLabel: function () { <br> labelElement = crir.findLabel(this.getAttribut eNode('id').value); <br><br> if(labelElement.className == 'checkbox_checked') { <br> labelElement.className = "checkbox_unchecked"; <br> } <br> else { <br> labelElement.className = "checkbox_checked"; <br> } <br> }, <br><br> toggleRadioLabel: function () { <br> clickedLabelElement = crir.findLabel(this.getAttributeNode('id').value); <br><br> clickedInputElement = this; <br> clickedInputElementName = clickedInputElement.getAttributeNode('name').value; <br><br> arrInputs = document.getElementsByTagName('input'); <br><br> // 同じグループ内のすべての無線(ラベルクラス)のチェックを外します <br> for (var i=0; i<arrinputs.length i> inputElementType = arrInputs[i].getAttributeNode( 'タイプ').値; <br> if (inputElementType == 'radio') { <br> inputElementName = arrInputs[i].getAttributeNode('name').value; <br> inputElementClass = arrInputs[i].className; <br> // 変更したものと同じ「名前」を持つラジオボタンを見つけ、chkHidden <br> // そしてそれらをオフに設定します <br> if (inputElementName == clickedInputElementName && inputElementClass = = 'crirHidden') { <br> inputElementID = arrInputs[i].getAttributeNode('id').value; <br> labelElement = crir.findLabel(inputElementID); <br> labelElement.className = 'radio_unchecked'; <br> <br> } <br> } <br><br> // クリックされたラジオが非表示の場合 ラベル をオンに設定します <br> 場合(clickedInputElement.className == 'crirHidden') { <br> clickedLabelElement .className = 'radio_checked'; <br> } <br> }, <br><br> addEvent: function(element, eventType, doFunction, useCapture){ <br> if (element.addEventListener) <br> { element.addEventListener(eventType, doFunction、useCapture); <br> true を返します。 <br> } else if (element.attachEvent) { <br> var r = element.attachEvent('on' eventType, doFunction); <br> r を返します。 <br> } else { <br> element['on' eventType] = doFunction; <br> } <br> } <br>}<br><br>crir.addEvent(window, 'load', crir.init, false);<br><br>オンライン デモ<a href="http://img.jb51.net/online/checkbox/sample.html">http://img.jb51.net/online/checkbox/sample。 html</a><br><br>パッケージのダウンロード<img src="/myeditor/sysimage/file/rar.gif" border="0" alt="JavaScript ラジオ ボタン、複数選択ボックスの美化 code_form 特殊効果" ><a href="http://img.jb51.net/online/checkbox/CRIR.rar" target="_blank">CRIR.rar</a></arrinputs.length></arrlabels.length></arrlabels.length>