【问题标题】:jQuery .val() returning undefindedjQuery .val() 返回未定义
【发布时间】:2021-09-06 20:36:22
【问题描述】:

这里的一位新开发人员正在尝试使用 jQuery 使用 html id staffno 提取值

<div class="span3">
    <div class="control-group">
        @Html.EditorFor(model => model.StaffNumber, new { id = "staffno" })
        @Html.ValidationMessageFor(model => model.StaffNumber)
        <span id="useravailabity"></span>
    </div>
</div>

js:

function GetId() {
    alert("Staff Id is " + $("#staffno").val());
}

我不明白为什么它返回给我undefined??

【问题讨论】:

  • 它很难帮助你,我们需要看看你什么时候运行警报,如果你提供编译好的html代码也可以帮助你
  • 暗示要么没有匹配#staffno的元素,要么有多个(无效)且第一个匹配的元素没有value属性可供读取。如果没有看到实际的 HTML 或问题的工作示例,我们无法提供任何有用的帮助。
  • 请从浏览器检查 HTML。是否使用 id="staffno" 创建输入控件
  • 如果使用 id="StaffNumber" 创建控件(尽管我对此表示怀疑,因为您在代码中提到了 id),那么您的 jquery $("#staffno").val() 将永远无法工作。因为它正在使用 id=staffno 搜索控件。
  • @AmitVerma 它正在创建一个 id="StaffNumber" 的控件

标签: javascript c# jquery asp.net-mvc


【解决方案1】:
@Html.EditorFor(model => model.StaffNumber, new { id = "staffno" })
@Html.ValidationMessageFor(model => model.StaffNumber)

Jquery 不会提取任何内容,因为它会将没有 html 标记的内容视为简单文本

【讨论】:

  • 这些是 ASP.Net MVC 控件,将呈现为 HTML。
  • 有什么方法可以提取价值吗?
  • 我可以知道为什么会这样吗? @RoryMcCrossan
【解决方案2】:

我已经设法找到了这个问题的解决方案。

   <div class="span3">
            <div class="control-group">

                @Html.EditorFor(model => model.StaffNumber, new { id = "staffno" })
                @Html.ValidationMessageFor(model => model.StaffNumber)
                <span id="useravailabity"></span>
            </div>
        </div>

Html.EditorFor 创建了 id = "StaffNumber" 的控件。我所做的只是改变

 alert("Staff Id is " + $("#staffno").val());

到这里:

 alert("Staff Id is " + $("#StaffNumber").val());

感谢你们帮助我了解 jQuery 和 ASP.Net Mvc 控件的工作原理!非常感谢!

【讨论】:

    猜你喜欢
    • 2016-12-01
    • 2021-05-16
    • 2017-10-08
    • 1970-01-01
    • 2011-03-03
    • 2011-04-17
    • 1970-01-01
    • 2010-11-29
    • 2020-06-30
    相关资源
    最近更新 更多