首页 > 解决方案 > 如何在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>

'''

标签: javascripthtml

解决方案


推荐阅读