在dom加载后,文本框值未定义

时间:2017-10-20 05:57:35

标签: jquery html dom

这很奇怪。我的 .val() .html()总是未定义,尽管我在页面上加载了所有内容后使用它。此外, .text()为空。

<div class="row col-md-12">
<div class="row col-md-12">
    <label id="lblDir" style="width:auto">Scripts Directory Path: <input type="text" id="txturl"></label>
</div>
<div class="row col-md-12">
    <div id="grid" style="border:dashed"></div>
</div>
<div class="row col-md-12">
    <input id="btnRun" type="button" value="Run Scripts" style="margin:5px" />
</div>
<div class="row col-md-12">
    <label id="result"></label>
</div>
</div>
<script>
$(function () {
    $("#btnRun").kendoButton();
    $("#btnRun").on("click", function (e) {
        alert($('#txtUrl').text());
    });
});

我尝试过的事情 1.在div标签之前放置脚本标签 2.在按钮html中添加onclick功能

<input id="btnRun" type="button" value="Run Scripts" onclick="onInstall();" style="margin:5px" />

结果是相同的

2 个答案:

答案 0 :(得分:3)

提到@Carsten Løvbo Andersen时,您需要使用$('#txturl').val()代替$('#txtUrl').text(),因为:

  • #txtUrl不存在。 CSS classesjQuery选择器通常具有案例意义。 (不支持区分大小写。)
  • input元素没有.text(),而是.val()

&#13;
&#13;
$(function () {
    $("#btnRun").on("click", function (e) {
        alert($('#txturl').val());
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row col-md-12">
<div class="row col-md-12">
    <label id="lblDir" style="width:auto">Scripts Directory Path: <input type="text" id="txturl"></label>
</div>
<div class="row col-md-12">
    <div id="grid" style="border:dashed"></div>
</div>
<div class="row col-md-12">
    <input id="btnRun" type="button" value="Run Scripts" style="margin:5px" />
</div>
<div class="row col-md-12">
    <label id="result"></label>
</div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您必须将ID标记中的id和脚本中的id值保持一致。并且id值区分大小写。

在你的html标记中,输入类型的id是&#34; txturl&#34;但在js中它是&#34; txtUrl&#34;。同时制作&#34; txturl&#34;或&#34; txtUrl&#34;然后它应该工作正常。