javascript - 如何在html表格表中动态地将当前行字段值插入下一行字段值
问题描述
我有一个场景,我需要从表格的前一行获取年份。
例如,第 1 行有 From year 和 to year(用户插入)。
第 2 行应该从第 1 行的年份值中获取,并且年份将由用户输入。
第 3 行从年份(到第 2 行的年份)和到年份(由用户输入)。
注意:如果 To year 是 9999,那么它不应该允许用户输入下一行值,并且 from year 是 Previous row to year +1。
第 2 行从年份 = 第 1 行到年份 +1
第 3 行从年份 = 第 2 行到第 +1 年当前,从年份不从上一行递增,也不会自动填充。
请帮我
谢谢 '''
<head>
<script>
var max = 5;
var min = 1;
function yearValidation(lineNum)
{
if(lineNum <= max && lineNum >=min)
{
var toYearVal = document.getElementById("to_year"+lineNum).value;
var fromYearVal = document.getElementById("from_year"+lineNum).value;
if(lineNum != max && !isNaN(toYearVal) && !isNaN(fromYearVal) && toYearVal.length == 4)
{
toYearVal = parseInt(toYearVal);
fromYearVal = parseInt(fromYearVal);
if(fromYearVal >= toYearVal)
{
alert("To year "+toYearVal+" value is greater than from year : "+fromYearVal)
document.getElementById("to_year"+lineNum).value = "";
}
else
{
if(toYearVal<9999 && toYearVal>=1000)
{
toYearVal = toYearVal + 1;
document.getElementById("from_year"+(lineNum+1)).value = toYearVal;
lineNum = lineNum + 1;
for(i=lineNum;i<=max;i++)
{
document.getElementById("from_year"+(i+1)).value = "";
document.getElementById("to_year"+(i+1)).value = "";
document.getElementById("to_year"+(i+1)).readOnly = false;
}
}
else if(toYearVal == 9999)
{
lineNum = lineNum + 1;
for(i=lineNum;i<=max;i++)
{
document.getElementById("from_year"+i).value = "";
document.getElementById("to_year"+i).value = "";
//document.getElementById("to_year"+i).readOnly = true;
}
}
}
}
}
}
function validate(evt) {
var theEvent = evt || window.event;
// Handle paste
if (theEvent.type === 'paste') {
key = event.clipboardData.getData('text/plain');
} else {
// Handle key press
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
}
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
</script>
</head>
<td width="350" align="left" valign="middle">
<c:if>
A. TEMP 01(From <input id="TEMPFromYr" name="TEMPFromYr" style="width: 32px;" class="no-outline" type="text" maxlength="4" onkeypress='validate(event)' /> & <input id="TEMPToYr1" name="TEMPToYr" size="4" type="text" maxlength="4" onkeyup="yearValidation()" onkeypress='validate(event)' /> )
</c:if>
<c:if>
B. TEMP 02(From <input id="TEMPFromYr" name="TEMPFromYr" style="width: 32px;" class="no-outline" type="text" maxlength="4" onkeypress='validate(event)' /> & <input id="TEMPToYr" name="TEMPToYr" size="4" type="text" maxlength="4" onkeyup="yearValidation()" onkeypress='validate(event)' /> )
</c:if>
<c:if}">
C. TEMP 03(From <input id="TEMPFromYr" name="TEMPFromYr" style="width: 32px;" class="no-outline" type="text" maxlength="4" onkeypress='validate(event)' /> & <input id="TEMPToYr" name="TEMPToYr" size="4" type="text" maxlength="4" onkeyup="yearValidation()" onkeypress='validate(event)' /> )
</c:if>
</td>
'''
解决方案
推荐阅读
- bash - bash 中的 for 循环有问题吗?
- ssl - 移动应用程序中的公钥固定与证书固定
- javascript - 自动大写文本框光标自动跳转到结尾
- javascript - 在 React 中将 Blob 转换为 Cell 内的图像
- android - 实施 Android 应用内更新时出错
- css - 如何在(文本)垂直的框中对齐文本中心 -rl 对齐
- java - 在java中管理文件读取,保存,写入
- sql - 无法以所需格式获取 2 个日期之间的差异
- excel - 如何根据 VBA 中另一个工作表的条件逐个更改工作表的特定值?
- amazon-web-services - AWS Cognito 密码要求中的大写和小写字母是什么?