jspにフォームがあります。動的な tr が含まれています。Tr は 1 つまたは複数にすることができます。tr が 1 つしかない場合に問題が発生します。複数の tr の場合、すべての入力要素も同じ名前になります。
function getRowIndex( el ) {
while( (el = el.parentNode) && el.nodeName.toLowerCase() !== 'tr' );
if( el )
return el.rowIndex - 1;
}
function enableDisableRow(rowIndex){
if(document.formName.check_all[rowIndex].checked == true){
document.formName.text_all[rowIndex].disabled = false;
}
}
<table>
<tr>
<td>
<input type="checkbox" name="check_all" onclick="enableDisableRow(getRowIndex(this))" />
</td>
<input type="text" name="text_all" value="Hello" />
</td>
</tr>
</table>
問題はdocument.formName.check_all.checked
、行が1つしかない場合に未定義になることです。