jQuery .val() 返回未定义

Posted

技术标签:

【中文标题】jQuery .val() 返回未定义【英文标题】:jQuery .val() returning undefinded 【发布时间】: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" 的控件 【参考方案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 控件的工作原理!非常感谢!

【讨论】:

以上是关于jQuery .val() 返回未定义的主要内容,如果未能解决你的问题,请参考以下文章

jquery $(this).id 返回未定义

ajax返回一个空请求(未定义的索引)[重复]

从 jquery ajax 调用分配变量返回未定义

JQuery 调用 .elements 返回未定义

Jquery对象分配给变量返回未定义[重复]

jQuery 验证: $.data($('form')[0], 'validator').settings 返回未定义