我使用PHP,JQuery和Bootstrap。
我正在生成一个表单,这样用户就可以在上游流程中提供他们的可用性供考虑。用户单击一个按钮,一个新行将添加到网站,要求用户输入。有一个名为整天的复选框,我想锁定和更新开始和结束输入区域的值。
如果我生成三行输入并选中第3行中的复选框,那么当我希望更改与选中的复选框在同一行中的字段时,第一行的输入字段会被修改。
我想我需要缩小行表的唯一ID的范围,但我不确定如何做到这一点。
var s1 = 0;
$(document).ready(function() {
$(".add-single").click(function() {
$("#singleAvailTable").show();
var markup = '<tr id="' + s1 + '"><td class="text-center w-20"><input type="date" class="" name="inputSingleDate[]" id="inputSingleDate[]" value="<?php echo $AvailDatedate; ?>" min="<?php echo $AvailDatedate; ?>" max="<?php echo $AvailOneYear; ?>" required></td><td class="text-center w-20"><input type="hidden" name="checkAllDay[]" id="checkAllDay[]" value="0"><input type="checkbox" onclick="this.previousSibling.value=1-this.previousSibling.value; AllDay(' + s1 + ')" id="checkAllDaybuton"></td><td class="text-center w-20"><select id="inputStartTime[]" name="inputStartTime[]" class="form-select form-select-sm"><option selected value="08:00">8:00 AM</option><option value="08:15">8:15 AM</option></select></td><td class="text-center w-20"><select id="inputEndTime[]" name="inputEndTime[]" class="form-select form-select-sm"><option value="08:00">8:00 AM</option><option value="08:15">8:15 AM</option><option value="08:30">8:30 AM</option><option value="12:00">12:00 PM</option><option value="20:00">8:00 PM</option></select></td><td class="text-center w-20"><input type="text" class="" id="inputNote[]" name="inputNote[]" pattern="[a-zA-Z0-9.- ]+"></td><td class="text-center w-20"><button type="button" class="btn btn-danger btn-sm" id="RowDel">Delete</button></td></tr>';
$('#singleAvailTable').find('tbody').append(markup);
s1++;
console.log(s1);
});
// Find and remove selected table rows
$("#singleAvailTable").on('click', '#RowDel', function() {
$(this).parent().parent().remove();
});
});
function AllDay(x) {
// console.log("Row index is: " + x);
// Find Allday checkbox
if (document.getElementById('inputStartTime[]').disabled == false) {
document.getElementById("inputEndTime[]").value = "20:00";
document.getElementById("inputEndTime[]").disabled = true;
document.getElementById("inputStartTime[]").value = "08:00";
document.getElementById("inputStartTime[]").disabled = true;
console.log('disabled row' + x);
return;
}
if (document.getElementById('inputEndTime[]').disabled == true) {
document.getElementById("inputEndTime[]").value = "12:00";
document.getElementById("inputEndTime[]").disabled = false;
document.getElementById("inputStartTime[]").value = "08:00";
document.getElementById("inputStartTime[]").disabled = false;
console.log('enabled row' + x);
return;
}
}
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<p class="text-center">Use a button below to add an availability entry.</p>
<form>
<table class="table table-sm" id="singleAvailTable">
<thead>
<tr>
<th scope="col" class="text-center w-20">Date</th>
<th scope="col" class="text-center w-20">All Day</th>
<th scope="col" class="text-center w-20">Start Time</th>
<th scope="col" class="text-center w-20">End Time</th>
<th scope="col" class="text-center w-20">Availability Note</th>
<th></th>
</tr>
</thead>
<tbody id="tbody">
</tbody>
</table>
</form>
<p class="text-center">
<button type="button" class="btn btn-primary add-single" id="addSingleBtn">Add Single Day Availability</button>
</p>
jsfiddle代码段:https://jsfiddle.net/orddie/0mf6qLxk/10/ .
2条答案
按热度按时间r1wp621o1#
更改您的ID
将复选框的onclick函数更改为
3duebb1j2#
我通过将选择逻辑更改为class而不是ID code is here https://jsfiddle.net/orddie/0mf6qLxk/16/得到了所需的内容
大多数更新都是针对这一部分进行的