function init() { var inputElem = document.getElementsByTagName( "input" ); var isTBL = function(n){ return ( n == "TBL" || new RegExp("(^|\\s)TBL(\\s|$)").test(n) ); }; var isMA = function(n){ return ( n == "MA" || new RegExp("(^|\\s)MA(\\s|$)").test(n) ); }; var isSA = function(n){ return ( n == "SA" || new RegExp("(^|\\s)SA(\\s|$)").test(n) ); }; for( var i = 0; i < inputElem.length; i++ ) { var className = inputElem[i].className; var parentClassName = inputElem[i].parentNode.className; if( className && isTBL(parentClassName) && ( isMA(className) || isSA(className) ) ) { var target = inputElem[i]; target.inputGroup = new Array(); var parentTr = target.parentNode.parentNode; if( parentTr && parentTr.tagName.toUpperCase() == "TR" ) { var tdElem = parentTr.getElementsByTagName( "td" ); for( var j = 0; j < tdElem.length; j++ ) { var inputElemGroup = tdElem[j].getElementsByTagName( "input" ); for( var k = 0; k < inputElemGroup.length; k++ ) { var inputClassName = inputElemGroup[k].className; if( inputClassName && ( isMA(inputClassName) || isSA(inputClassName) ) ) { target.inputGroup.push( inputElemGroup[k] ); } } } } target.onclick = (function(a){return function(){doExclusiveCtrl(a);} })(target); target.onclick(); } } } function doExclusiveCtrl(target) { var disable = 0; for( var k = 0; k < target.inputGroup.length; k++ ) { var targetCtrl = target.inputGroup[k]; if( disable ) { targetCtrl.checked = false; targetCtrl.disabled = true; } else { targetCtrl.disabled = false; } if(targetCtrl.checked == false) { disable = 1; } } } ※ onload=の入力欄に init(); を入力します。 |
vol.044へ | vol.046へ |