javascript - 传递两个 document.getElementById 不起作用

标签 javascript

所以我试图传递两个 update(document.getElementById()); 。由于某种原因,它只通过第一个而忽略第二个。

function updateDays() {                                           
    var vacationDays = $('#vacationDays').val().split(",").length;
    $('#vacationDaysTaken').val(vacationDays);                    
    update(document.getElementById('vacationDaysTaken'));         

    var totalDaysOff = $('#daysOff').val().split(",").length;     
    $('#totalDaysOff').val(totalDaysOff);                         
    update(document.getElementById('totalDaysOff'));              
}                                                                 

function update(obj) {                 
    if(obj.type == "checkbox") {       
        if(obj.checked)                
            changeList[obj.id] = "on"; 
        else                           
            changeList[obj.id] = "";   
    }                                  
    else {                             
        changeList[obj.id] = obj.value;
    }                                  
    updateDays();                      
}     

HTML:

    <body>                                                                                                               
    <div id="wrapper">                                                                                               
        <div id="content">                                                                                           
            <h1>Paid Vacation Request</h1>                                                                           

            <div id="vacBorder">                                                                                     
                <span id="msg" style="color: red; font-weight: bold">&nbsp;</span>                                   
                <table id="vac">                                                                                     
                    <tr>                                                                                             
                        <th>Employee:</th>                                                                           
                        <td><span id="empName"></span></td>                                                          
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Request Date:</th>                                                                       
                        <td><span id="requestDate"></span></td>                                                      
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Days Requesting Off:</th>                                                                
                        <td><input type="text" id="daysOff" name="Days Off" required></td>                           
                   </tr>                                                                                             
                   <tr>                                                                                              
                        <th>Vacation Days Requeted:</th>                                                             
                        <td><input type="text" id="vacationDays" name="Vacation Days" required></td>                 
                   </tr>                                                                                             
                    <tr>                                                                                             
                        <th>Total Days Off:</th>                                                                     
                        <td><input type="int" id="totalDaysOff" name="Total Days Off"></td>                          
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Vacation Days Taken:</th>                                                                
                        <td><input type="int" id="vacationDaysTaken" class="vacDays" name="Vacation Days Taken"></td>
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Total Days Taken:</th>                                                                   
                        <td><input type="int" id="numDaysTakenTotal" name="# of days taken total" readonly></td>     
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Days Left:</th>                                                                          
                        <td><input type="int" id="numDaysLeft" name="# of days left" readonly></td>                  
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Employee Comments:</th>                                                                  
                        <td><span id="employeeComments"></span></td>                                                 
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Manager Comments:</th>                                                                   
                        <td><textarea style="width: 300px;" id="managerComments"></textarea></td>                    
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Manager Approved:</th>                                                                   
                        <td>                                                                                         
                            <input type="checkbox" id="managerApproved">                                             
                            <span id="managerApprovedBy"></span>                                                     
                        </td>                                                                                        
                    </tr>                                                                                            
                    <tr>                                                                                             
                        <th>Status</th>                                                                              
                        <td><span id="status"></td>                                                                  
                    </tr>                                                                                            
                </table>                                                                                             
                <input type="button" value="Submit" onclick="submitVac();">                                          
                <input type="button" value="Deny Request" onclick="denyVac();">                                      
                <input type="button" value="Cancel Request" onclick="cancelVac();" id="cancelVac">                   
            </div>                                                                       
</div>
</div>
</body>

最佳答案

修复

function update(obj) {                 
    if(obj.type == "checkbox") {       
        if(obj.checked)                
            changeList[obj.id] = "on"; 
        else                           
            changeList[obj.id] = "";   
    }                                  
    else {                             
        changeList[obj.id] = obj.value;
    }                                  
}              
updateDays();//move this outside of the function

附加

如果您仍然遇到问题,请更新 updateDays() 以使用 try catch block 。如果您在编程上做了错误的事情,那么就会发现。

function updateDays() {                                           
    var vacationDays = $('#vacationDays').val().split(",").length;
    $('#vacationDaysTaken').val(vacationDays);             
    try {       
      update(document.getElementById('vacationDaysTaken')); 
    } catch (e) {
      alert('error - check your console');
      console.log(e);
    }
    var totalDaysOff = $('#daysOff').val().split(",").length;     
    $('#totalDaysOff').val(totalDaysOff);                  
    try {                          
       update(document.getElementById('totalDaysOff'));    
    } catch (e) {
      alert('error - check your console');
      console.log(e);
    }           
}                                                                 

关于javascript - 传递两个 document.getElementById 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491323/

相关文章:

php - 如何在完成 PHP 脚本执行之前接收 jQuery post 响应?

javascript - jquery 插件和一个点击按钮

javascript - 它可能的摘要菜单像这张图片一样放在左边吗?

javascript - 选择全部和一个时切换的 div 消失

JavaScript 正则表达式双名称

javascript - 无法解析来自 React Firebase 对象的数据

javascript - Bootstrap 表在 Chrome 上无法正常工作,但在 Firefox 上可以正常工作

javascript - jquery ui resizable防止高度小于文本

javascript - 在 typescript 中使用任何 Prop 定义对象

javascript - 函数式 jQuery : Custom Events or Functions?