Концепция похожа на Thomas, но выполняется при загрузке страницы и добавляет .focus () для хорошей меры:
$(function(){
var toggleState = function(){
if($(this).is(':checked'))
$(this).next('[name="b"]').removeAttr('disabled').focus();
else
$(this).next('[name="b"]').attr('disabled','disabled');
};
//bind event and fire off on page load
$('input[name="a"]').bind('click',toggleState).each(toggleState);
})
Кроме того, у вас не должно быть дубликатов идентификаторов ... используйте атрибут nameили цель по классам.
<table>
<tr><td><input type='checkbox' name='a'><input type='text' name='b'></td></tr>
<tr><td><input type='checkbox' name='a'><input type='text' name='b'></td></tr>
</table>
http://jsfiddle.net/R28dV/4/