开发者问题收集

获取错误未捕获的类型错误:无法将属性“值”设置为 null

2019-08-02
1100

我收到此错误 Uncaught TypeError: 无法将属性“value”设置为 null ,在 ->

我的 html 是从函数 goSubmit() 传递值,

<form class="form-inline" id="formdaily" action="http://localhost:8080/reports/storewisedaily" method="POST">
          <div class="box">
            <div class="box-header">
              <h3 class="box-title">Total Paid Orders - Report Data</h3>
            </div>
            <!-- /.box-header -->
            <div class="box-body">
              <table id="datatables" class="table table-bordered table-striped">
                <thead>
                <tr>
                  <th>Month - Year</th>
                  <th>Amount</th>
                </tr>
                </thead>
                <tbody>

                                      <tr>
                      <td><a id="month_year" data-id="2019-01" onclick="goSubmit('2019-01')" href="#">2019-01</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-02" onclick="goSubmit('2019-02')" href="#">2019-02</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-03" onclick="goSubmit('2019-03')" href="#">2019-03</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-04" onclick="goSubmit('2019-04')" href="#">2019-04</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-05" onclick="goSubmit('2019-05')" href="#">2019-05</a></td>
                      <td>11,471.50</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-06" onclick="goSubmit('2019-06')" href="#">2019-06</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-07" onclick="goSubmit('2019-07')" href="#">2019-07</a></td>
                      <td>12.50</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-08" onclick="goSubmit('2019-08')" href="#">2019-08</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-09" onclick="goSubmit('2019-09')" href="#">2019-09</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-10" onclick="goSubmit('2019-10')" href="#">2019-10</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-11" onclick="goSubmit('2019-11')" href="#">2019-11</a></td>
                      <td>0.00</td>
                    </tr>
                                      <tr>
                      <td><a id="month_year" data-id="2019-12" onclick="goSubmit('2019-12')" href="#">2019-12</a></td>
                      <td>0.00</td>
                    </tr>
                                    <input type="hidden" id="select_month" name="select_month" value="">
                  <input type="hidden" id="select_store" name="select_store" value="3">
                </tbody>
                <tfoot align="right">
                  <tr><th></th><th></th></tr>
                </tfoot>
              </table>
            </div>
            <!-- /.box-body -->
          </div>
          <!-- /.box -->
          </form>

并且在函数中我想将 goSubmit() 的值传递给名为“select_month”的隐藏输入

  document.getElementById('select_month').value = m;

即使我对值进行硬编码,似乎也没有传递它。有人能帮我解决周五和周六的问题吗

<input type="hidden" id="select_month" name="select_month" value="">

function goSubmit(month_year) {
        alert(month_year); // it pass value '2019-05'
        var m = month_year.toString();
        console.log(m);
        alert(m);
        //alert($('#select_month').val(m));
        document.getElementById('select_month').value = m;
        //alert(document.getElementById("select_month").value);
        //alert($('#select_month').val(month_year));
        //$("#select_store").val(3);
        document.getElementById('select_store').value = 3;
        document.getElementById('formdaily').submit();
      }
3个回答

Value 是存在于输入标签上的属性,因此请尝试一下。 document.getElementById("select_month").value = m

TrickOrTreat
2019-08-02

为什么您的案例不起作用

这是因为当您使用 document.getElementById 访问 elements 时,它不存在。您可以在检查 DOM 是否已准备就绪或类似情况后执行此操作。

还有其他方法可以在没有这些的情况下工作。

document.getElementById("formdaily").children.namedItem("select_month").value = "1234"

注意: 大写字母中的 select_month 元素必须是 formdaily 的直接子元素。

其他方式

按名称

document.getElementsByName("select_month")[0].value = 123;

按查询选择器

document.querySelector("#formdaily input[name=select_month]").value = 5

按表单元素

document.forms.formdaily.select_month.value = 5
Shivam Mishra
2019-08-02

我想我已经找到了错误。看来 javascript 无法将值 传递给 隐藏输入 。解决方案是我将输入隐藏更改为输入类型,然后 onload 时我将隐藏 select_month 的输入类型。现在它将值传递给输入文本。

Shafiq Mustapa
2019-08-04