从MVC4/Razor模型的嵌套对象中获取JavaScript元素的id

15

如果我像这样定义一个文本框:

@Html.TextBoxFor(m => m.Contact.HomePhone)

它将生成一个带有idContact_HomePhoneinput元素。

在JavaScript中,是否可以获取此id而不是使用硬编码的Contact_HomePhone

这是我需要在JavaScript动态获取此id的示例:

$("#Contact_HomePhone").mask("(999) 999-9999");
我知道如何使用反射获取属性名称,但仍需要硬编码 _ 来连接 ContactHomePhone

(我知道如何使用反射获取属性名称,但仍需要硬编码_ 来连接ContactHomePhone。)

1个回答

21

尝试这种方式,使用 Html.IdFor,你可以获得帮助程序生成的id。

$('#@Html.IdFor(m => m.Contact.HomePhone)').mask("(999) 999-9999");

只需要在前面加上#,jQuery 就可以捕捉到它。

但是你也可以使用类选择器来绑定插件。例如,如果你有很多这样的电话字段,你可以为所有这些文本框提供一个公共类,并使用类选择器将掩码插件绑定到它,这将避免使用上述方法确定 ID 并使用公共选择器。

  @Html.TextBoxFor(m => m.Contact.HomePhone, null, new { @class = "phoneField"});

而不必担心ID,您可以直接绑定它们。

 $('.phoneField').mask("(999) 999-9999");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接