在HTML表单中,我们可以使用类属性对一些输入字段进行分组(例如:TextBox,DropDownList)。
示例:
@Html.TextBox("MailingCity", null, new { @class = "block" })
@Html.DropDownList("MailingStateID", new SelectList(ViewBag.stateList, "value", "text"), new { @class = "block", @id = "ddlMailingStateList" })
之后我们可以按类编写所有字段的脚本。
示例:
$('.block').each(function () {
var default_value = this.value;
$(this).focus(function () {
if (this.value == default_value) {
this.value = '';
}
});
$(this).blur(function () {
if (this.value == '') {
this.value = default_value;
}
});
});
有没有其他可能的方法在没有 class 的情况下对某个字段进行分组? 实际上,我想在脚本部分编写一个通用的验证函数,它将覆盖一些输入字段。
提前致谢。
答案 0 :(得分:1)
好吧,最后我用html自定义属性做了。 详细说明:
在HTML:
@Html.TextBox("MiddleName", null, new { @class = "block", @myAtt="valid" })
脚本:
$('[myatt="valid"]').each(function () {
$(this).focus(function () {
alert("Working...");
});
$(this).blur(function () {
alert("Seriously?");
});
});
这里我使用@myAtt ="有效"。并且它运作良好:))
答案 1 :(得分:0)
您可以按类型选择器对字段进行分组。 例如:
$('input[type=text]').each(function () {})
。
上面的行将为您提供类型等于text的所有输入字段。您可以应用类似的逻辑来获取所有复选框,选择框等等。
有关jquery选择器的更多示例,请转到JQuery Selector
答案 2 :(得分:0)
在这种情况下,我建议您查看jQuery(":input");
这将为您提供所有字段,无论文本,选择,按钮,文本区域等。 JQuery文档链接link