我正在尝试使用 javascript 执行一些实时电话号码验证。我不需要验证方面的帮助;我只需要帮助将文本框中的值提取到 Javascript 变量中。
但是,在页面加载时,我收到一条错误消息:“当前上下文中不存在名称‘txtPhone’。”
这里是我在 MVC2 中声明文本框的地方:
<div class="editor-field">
<%: Html.TextBoxFor(model => model.phone, new { id = "txtPhone", onblur = "checkPhoneNumber();" })%>
<%: Html.ValidationMessageFor(model => model.phone) %>
</div>
在同一页面上,我有这个 javascript:
function checkPhoneNumber() {
var phone = $("#<%= txtPhone.ClientID %>").value;
}
如果我在 Javascript 中注释掉 txtPhone 引用,页面将会加载,并且我可以看到 ID 已正确分配给文本框,如下所示(来自查看源代码):
<div class="editor-field">
<input id="txtPhone" name="phone" onblur="checkPhoneNumber();" type="text" value="" />
最佳答案
您正在尝试使用 MVC 不使用的 ASP.Net 服务器控件。
您只需要 ClientID
,因为 ASP.Net 服务器端控件在其生成的 HTML 中发出唯一 ID。
ASP.Net MVC 不创建任何服务器端控件; TextBoxFor
将不再使用您按原样提供的 ID。
关于javascript - MVC2 - 试图将文本框的值拉入 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017982/