jQuery表-引用用户输入的行名称和值
我有几个由另一个应用程序生成的表,我无法控制这些表。我对jQuery和ajax完全陌生,对jsp的了解也很有限。两个示例行是:jQuery表-引用用户输入的行名称和值,jquery,reference,html-table,Jquery,Reference,Html Table,我有几个由另一个应用程序生成的表,我无法控制这些表。我对jQuery和ajax完全陌生,对jsp的了解也很有限。两个示例行是: <table class="sicknessForm"> <tr id="row_0" class="datarow"> <td id="col_2"><input name="row_0-col_2" class="tabcell" value="Injuries"></td
<table class="sicknessForm">
<tr id="row_0" class="datarow">
<td id="col_2"><input name="row_0-col_2" class="tabcell" value="Injuries"></td>
<td id="col_4"><input name="row_0-col_4" class="tabcell" value="01"></td>
<td id="col_5"><input name="row_0-col_5" class="tabcell" value="2"></td>
<td id="col_6"><input name="row_0-col_6" class="tabcell" value="5"></td>
</tr>
<tr id="row_1" class="datarow">
<td id="col_2"><input name="row_1-col_2" class="tabcell" value="Absences"></td>
<td id="col_4"><input name="row_1-col_4" class="tabcell" value="100"></td>
<td id="col_5"><input name="row_1-col_5" class="tabcell" value="102"></td>
<td id="col_6"><input name="row_1-col_6" class="tabcell" value="105"></td>
</tr>
</table>
$(:HowDoIReferenceThis).attr('disabled', '');
if (/^\d+$/.test($(this).val())){
//data is good
}
这里有一个我用来摆弄你东西的JSFIDLE:更新了 演示: 一切就绪
$(function() {
var row = [];
$('.datarow').each(function(i) {
row.push($('td input:eq(0)', this).val() + ' -> ');
$('td input:gt(0)', this).each(function(e) {
if (isNaN(this.value)) {
$(this).attr('disabled', true);
} else {
row.push(this.value);
}
});
});
var send_to_ajax = row.join(' ');
});
更新2
回应评论
$('.tabcell').change(function() {
if (isNaN(this.value)) {
$(this).css('background','red');
} else {
$(this).css('background','green');
}
});
您根本无法控制标记?我这样问是因为该应用程序正在生成带有重复ID的无效HTML。这加上不必要地使用输入字段作为列标题。生成表格单元格的应用程序只是在行和列数据上迭代以生成表格。无法设置某些单元格为输入,而某些单元格为非输入。太棒了,Ryley。谢谢你的快速回复。我以前从未听说过JSFIDLE,那真的很酷!如果可以的话,请至少保留一段时间。我不知道它在这方面是如何工作的-希望它不会被无限期删除!因此,该函数循环遍历每个“datarow”类,将列0文本放入行数组中,然后对大于0的每个单元格进行检查,看它是否不是一个数字。如果不是数字,则禁用元素,否则会将其添加到行数组的末尾。
当输入非数字字符时,是否有方法更改或删除元素的颜色$(这个);或$(this.css({background:'red'});然而,当我尝试这些时,当我输入一个非数值时,什么也不会发生。我可以向每个表元素或行添加一个on change事件吗?再次感谢维克·汉克斯,阿塞蒂克!我只是在看.change事件函数。我本来打算将其附加到row类,但您的方法有效。我认为将事件附加到输入元素而不是行元素可能更好。维克
$(function() {
var row = [];
$('.datarow').each(function(i) {
row.push($('td input:eq(0)', this).val() + ' -> ');
$('td input:gt(0)', this).each(function(e) {
if (isNaN(this.value)) {
$(this).attr('disabled', true);
} else {
row.push(this.value);
}
});
});
var send_to_ajax = row.join(' ');
});
$('.tabcell').change(function() {
if (isNaN(this.value)) {
$(this).css('background','red');
} else {
$(this).css('background','green');
}
});