【问题标题】:Client-side validation when changing input ids in asp.net mvc在 asp.net mvc 中更改输入 ID 时的客户端验证
【发布时间】:2014-05-30 02:56:46
【问题描述】:

我目前正在处理一个可以包含多个子表单实例的表单。主条目“出版物表格”包含子页面“出版物”的多个实例。我正在使用 AJAX 执行此操作,每次用户单击“添加行”按钮时,他们都会获得一个从自定义视图调用的新子表单项。

现在,每次单击“添加行”按钮时,javascript 计数器都会递增,然后将该值发送到控制器,控制器将其放入 ViewBag 中,并将其发送到视图文件。对于要区别对待的每个项目,我使用这个 viewbag 计数器来增加它的名称和 ID,例如:

<input id="pubDetails@(ViewBag.Upto)" class="text-box single-line" type="text" value="" name="pubDetails@(ViewBag.Upto)" data-val-required="The Full Publication Details (Include ISBN, Web addresses etc) (include all authors) field is required." data-val="true">
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="PubDetails@(ViewBag.Upto)"></span>

此视图文件不是它自己表单的一部分,而是将字段传递到母版页的表单中。

现在的问题是客户端验证不适用于这些字段,因为我已经更改了它们的 ID!是否有某种方法可以指定哪些 ID 在默认值之外获得哪种验证?也许像

<input validationID="pubDetails">

或以任何方式将验证重新指向适当的字段 ID?

谢谢!

【问题讨论】:

  • $.validator.unobtrusive.parse("#ID");
  • 谢谢!我在哪里添加此代码?这是否意味着要在我要验证的元素的每个 id 上运行,就像一个单独的 js 函数一样?谢谢!

标签: javascript asp.net asp.net-mvc validation client-side-validation


【解决方案1】:

由于您没有使用Ajax.BeginForm(),我很确定您需要使用$.validator.unobtrusive.parse("#ID); 来指定您要解析的验证器信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-14
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多