change
$(":text[name='selX'],:text[name='selY']").focusout(function(e) {
var x = $(":text[name='selX']").val();
var y = $(":text[name='selY']").val();
if ( !x || !y || isNaN(x) || isNaN(y) ) {
$(":text[name='selZ']").val("");
} else {
var z = parseInt(x, 10) + parseInt(y, 10);
$(":text[name='selZ']").val(z);
}
});
<table class="table table-striped">
<thead>
<tr>
<th>No</th>
<th>項目</th>
<th>数</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>項目1</td>
<td></td>
</tr>
<tr>
<td>11</td>
<td><html:text property="topkomoku" /></td>
<td><html:text property="topsu" /></td>
</tr>
<tr>
<td>2</td>
<td><html:text property="komoku2" /></td>
<td><html:text property="su2" /></td>
</tr>
<tr>
<td>3</td>
<td><html:text property="komoku3" /></td>
<td><html:text property="su3" /></td>
</tr>
<tr>
<td>4</td>
<td><html:text property="komoku4" /></td>
<td><html:text property="su4" /></td>
</tr>
<tr>
<td>5</td>
<td><html:text property="komoku5" /></td>
<td><html:text property="su5" /></td>
</tr>
<tr>
<td>6</td>
<td><html:text property="komoku6" /></td>
<td><html:text property="su6" /></td>
</tr>
<tr>
<td>7</td>
<td><html:text property="komoku7" /></td>
<td><html:text property="su7" /></td>
</tr>
<tr>
<td>8</td>
<td><html:text property="komoku8" /></td>
<td><html:text property="su8" /></td>
</tr>
<tr>
<td>9</td>
<td><html:text property="komoku9" /></td>
<td><html:text property="su9" /></td>
</tr>
<tr>
<td>10</td>
<td><html:text property="komoku10" /></td>
<td><html:text property="su10" /></td>
</tr>
<tbody>
</table>
$(function(){
$("#toroku").on("click",function(){
$("span.errMsg").html('');
$(":text[name^='su']").each(function(idx){
$tr = $(this).closest('tr');
var komoku = $tr.find("input[name^='komoku']").val();
if ( komoku ) {
if ( !$(this).val()) {
$("span.errMsg").html($tr.find('td:first').text() + '数値は必須です');
}
else if ( isNaN($(this).val())) {
$("span.errMsg").html($tr.find('td:first').text() + '数値を入力してください');
}
}
});
$trtop = $(":text[name='topkomoku']").closest('tr');
if ( !$(":text[name='topsu']").val()) {
$("span.errMsg").html($trtop.find('td:first').text() + '数値は必須です');
}
});
});