【发布时间】:2017-09-29 12:07:22
【问题描述】:
我正在我的 HTML 页面中动态创建表格/表格。可能有一张或多张桌子。数字是一个变化。表上只有一行,它们具有相同的表结构。在我的表格行中,有一个选择选项和一个按钮。我在这里所做的是更改选择选项值并使用按钮更新数据库。为此,我从选择选项中进行选择并将该值放入隐藏的输入字段。稍后我将获取所有输入字段数据并更新数据库。例如,如果我有两个表,我需要有两个 ID 用于选择选项。为此,我正在准备好文档中的 for 循环 循环 ID。但这没有用。这意味着我无法访问该值。但是,如果我在同一个文档下硬编码两个 ID,它就可以工作了。
身体...
echo "<form id='form' name='form'>";
echo "<tbody class='tbl_tbody'>";
echo "<tr>";
echo "<td style='width: 115px;'><b>".trim($row_sub_res['statDate'])."</b></td>";
echo "<td style='width: 115px;'><b>".trim($row_sub_res['tarDate'])."</b></td>";
echo "<td>";
echo "<label class='w3-text-red'><b>".trim($row_sub_res['status_name'])."</b></label><br>";
echo "<input name='oldSubStat' type ='hidden' id='selected_stat' value=".trim($row_sub_res['status']).">"; //first input 0
echo "<input name='newSubStat' type ='hidden' id='selected_stat_new_id' class='selected_statx$countx'>";
echo "<select id='select_my_id$countx' class='select_my_class$countx' >";
echo "<option disabled selected>Change Status</option>";
echo "<option id='1' value='1'>Pending</option>";
echo "<option id='3' value='3'>Complete</option>";
echo "<option id='4' value='4'>On Hold</option>";
echo "</select>";
echo "</td>";
//echo "<td>".trim($row_sub_res['tarDate'])."</td>";
echo "<td><b><input type='text' id='targetDatepickerID$countx' class='datepickerClass' disabled='disabled' placeholder='yyyy-mm-dd' name='tdate' value=".trim($row_sub_res['tarDate'])."></b></td>";
echo "<td> <input type='submit' id='sub_row_update_id$countx' class='sub_row_update' value='Update'/> </td>";
echo "</tr>";
echo "</tbody>";
echo "</form>";
我正在循环表格。 countx 正在递增。
如果我有两个表,那么如果我像这样硬编码,一切都会很好......
$(".select_my_class0").change(function() {
var idx = $(this).children(":selected").attr("id");
$(".selected_statx0").val("");
$(".selected_statx0").val(idx);
console.log("idx " + idx);
});
$(".select_my_class1").change(function() {
var idx = $(this).children(":selected").attr("id");
$(".selected_statx1").val("");
$(".selected_statx1").val(idx);
console.log("idx " + idx);
});
但是如果我循环这个。那行不通....
for (var j = 0; j < 2; j++) {
console.log("idx " + j);
$(".select_my_class"+j).change(function() {
var idx = $(this).children(":selected").attr("id");
$(".selected_statx"+j).val("test");
$(".selected_statx"+j).val(idx);
});
}
我尝试同时使用 ID 和类,但在循环中两者都不起作用。
我的按钮点击事件...
for (var i = 0; i < 3; i++) {
$("#sub_row_update_id"+i).click(function(e) {
var $subitem;
e.preventDefault();
$subitem = $(this).closest("tr") // Finds the closest row <tr>
.find("input").each(function() {
});
var xxx2 = $subitem[0]["value"]; //old status
var yyy2 = $subitem[1]["value"]; //new status
var zzz2 = $subitem[2]["value"]; //new tar date
console.log(xxx2);
console.log(yyy2);
console.log(zzz2);
});
}
【问题讨论】:
-
不需要 0,1,2.. 如果你知道 $(this) 。只需使用 $(".select_my_class").change(function() { var idx = $(this).children(":selected").attr("id"); $(this).val(""); $(this).val(idx); console.log("idx " + idx); });
-
而且你已经设置了这个 的值,那么为什么你把 id 和更新成 value 。如果您选择任何一个选项,它会自动设置为该选择框的值。这很正常
-
不工作。我可以获得更改后的值,但我无法将该值分配给隐藏的输入字段。因为在按钮单击中我需要访问输入字段数据。我已经用我的按钮点击事件更新了我的问题。
标签: javascript jquery html