未被捕获的TypeError:在HTMLInputElement.onclick上无法读取null的属性“提交”

时间:2019-08-29 23:49:38

标签: javascript forms form-submit

更新:我找到了解决方案。原来,我在表外有一个FORM标记,因此表无法正确提交。之所以只拧紧第一行,是因为只有第一行具有与外部FORM标签相同的ID。

尝试提交表单时出现上述错误。如果所有必填字段(在Javascript中提供)均已填写,则该表单应提交,否则,将弹出错误消息。我通过结合Javascript和PHP来做到这一点。

我已经使用Chrome的调试器进行了调试,并在这里搜索了论坛,但是找不到我的特定问题。

以下是设置$ id变量的PHP:

    <?php $id = 0; ?>
    <form method="POST" action="planupdate6.php?Client_ID=<?php echo 
$Client_ID;  ?>" id="planup">
<table id="table1">

    <tbody>
    <tr><th>DSA #</th><th>Plan</th><th>Initial Plan?</th><th>DDD#</th><th>Program</th><th>Consumer<br>Name</th><th>Coordinator<br>Name</th><th>PEA Upload<br>Date</th><th>Current Medicaid<br>Effective Date</th><th>Plan Approval<br>Date</th><th>DS&A Start<br>Date</th><th>Plan Start<br>Date</th><th>Plan End<br>Date</th><th style="width:100px;">Action</th><th>Link to MTs</th></tr>
    <?php
    $mp = 0;
    while($row = mysqli_fetch_assoc($rs)) 
        {   
            include 'tablerow.php'; $id++;
            $mp++;
        }
    ?>

这是表格中表格的主体,它是由一个名为tablerow.php的文件创建的(我在上面列出):

            <form id='b<?php echo $id; ?>' method="POST" action="https://admin.dsausa.net/client-database/planupdate6.php?Client_ID=<?php echo $Client_ID; ?>&Plan=<?php echo $row['Plan']; ?>">
            <input id="DSA_ID<?php echo $id;?>" name="DSA_ID" value="<?php echo $DSA_ID; ?>" type="hidden">
            <td><input id="Client_ID<?php echo $id; ?>" type="text" size="5" name="Client_ID" class="Client_ID" value="<?php echo $row['Client_ID']; ?>"></td>
            <td><input id="Plan<?php echo $id; ?>" type="text" name="Plan" size="4" class="Plan" value="<?php echo $row['Plan']; ?>"></td>
            <td><select id="Initial_Plan<?php echo $id; ?>" name="Initial_Plan" class="Initial_Plan"><option <?php if($Initial_Plan == "0"){echo "Selected ";}; ?> value="0">No</option><option <?php if($Initial_Plan == "1"){echo "Selected ";}; ?> value="1">Yes</option></select></td>
            <td><input id="DDD<?php echo $id; ?>" type="text" size="10" name="DDD" class="DDD" value="<?php echo $DDD_Case; ?>" disabled></td>
            <td><select id="Program<?php echo $id; ?>" type="text" name="Program" class="Program"><option>-- Select --</option><option <?php if($Program == "CCP-Short"){echo "Selected ";}; ?>>CCP-Short</option><option <?php if($Program == "CCP"){echo "Selected ";}; ?>>CCP</option><option <?php if($Program == "Interim"){echo "Selected ";}; ?>>Interim</option><option <?php if($Program == "Supports"){echo "Selected ";}; ?>>Supports</option><option <?php if($Program == "E-Record"){echo "Selected ";}; ?>>E-Record</option></select></td>
            <td><?php echo $First_Name . " " . $Last_Name; ?></td>
            <td><?php echo $row['SC_FName'] . " " . $row['SC_LName']; ?></td>
            <td><input id="PEA_Update<?php echo $id; ?>" type="text" size="10" name="PEA_Update<?php echo $id; ?>" class="PEA_Update" value="<?php echo $row['PEA_Update']; ?>"></td>
            <td><input id="Medicaid_Date<?php echo $id; ?>" type="text" size="10" name="Medicaid_Date" class="Medicaid_Date" value="<?php echo $row['Medicaid_Date']; ?>"></td>
            <td><input id="Plan_Approval_Date<?php echo $id; ?>" type="text" size="10" name="Plan_Approval_Date" class="Plan_Approval_Date" value="<?php echo $row['Plan_Approval_Date']; ?>"></td>
            <td><?php echo $row['Start_Date2']; ?></td>
            <td><input id="Approval_Date<?php echo $id; ?>" type="text" size="10" name="Approval_Date" class="Approval_Date" value="<?php echo $row['Approval_Date']; ?>"></td>
            <td><input id="Plan_End_Date<?php echo $id; ?>" type="text" size="10" name="Plan_End_Date" class="Plan_End_Date" value="<?php echo $row['Plan_End_Date']; ?>    "></td>

这是带有“更新计划”按钮的单元格,它可以完成所有繁重的工作(或应该这样做)。

<td><input id="tst<?php echo $id; ?>" form="b<?php echo $id; ?>" 
value="Update Plan" name="Submit" type="submit" onclick="id<?php echo $id; 
?> = document.getElementById('id<?php echo $id; ?>');alert(Initial_Plan<? 
php echo $id; ?>.value);
if((Initial_Plan<?php echo $id?; >.value == '0') && ((PEA_Update<?php echo 
$id; ?>.value == '') ||(Medicaid_Date<?php echo $id; ?>.value == '') || 
(Plan_Approval_Date<?php echo $id; ?>.value == '') || (Approval_Date<?php 
echo $id; ?>.value == '')))

{event.preventDefault();alert('PEA date, Medicaid Approval Date, Plan 
Approval Date, Approval Date can’t be 
blank.');}else{document.getElementById('b<?php echo $id ?>').submit();};"> 
</td>

我可以说,这缩小了范围:只是表的第一行给了我错误。如果我在其他任何行中单击“更新计划”按钮,则表单将按预期提交。

感谢您能给我任何帮助!

PS:我要考虑把按钮的Java脚本放在头上,但是最后一次尝试却没有用,所以我可能需要首先在代码本身中消除一些东西。

0 个答案:

没有答案