模态弹出窗口上的Jquery验证
我在这件事上找到了一些话题,但没有一个适合我的需要,也没有一个能解决我的问题。 这就是主页上的主题:模态弹出窗口上的Jquery验证,jquery,jquery-mobile,jquery-validate,unobtrusive-validation,Jquery,Jquery Mobile,Jquery Validate,Unobtrusive Validation,我在这件事上找到了一些话题,但没有一个适合我的需要,也没有一个能解决我的问题。 这就是主页上的主题: <div id="contentDiv"> <div style="margin-top: -31px;"> <form> <table class="tableFormLayout" cellpadding="0" cellspacing="0"> <tr>
<div id="contentDiv">
<div style="margin-top: -31px;">
<form>
<table class="tableFormLayout" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="button" id="openOrderItemAddPopup" value="Add" />
</td>
</tr>
</table>
@Html.Partial("~/Views/Orders/OrderItemAddPopup.cshtml", Model)
</form>
</div>
</div>
问题是控制台中出现错误:uncaughttypeerror:无法读取未定义的属性“form”
如果我改变这一点:
$("#orderitemsform").validate();
if ($("#orderitemsform").valid()) {
为此:
$('form').validate();
if ($('form').valid()) {
它可以工作,但它也会在主窗口上验证表单,我现在不想这样做。将表单最后一个按钮更改为输入类型
Submit
,因为在尝试提交表单时会触发不引人注目的验证
还要确保
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
这些键存在于web配置中。并且在加载表单之前加载所有必需的脚本
检查包裹
@节脚本{
@Scripts.Render(“~/bundles/jqueryval”)
}
已渲染。问题已解决:
<div id="contentDiv">
<div style="margin-top: -31px;">
<form>
<table class="tableFormLayout" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="button" id="openOrderItemAddPopup" value="Add" />
</td>
</tr>
</table>
</form>
<div id="mydiv">
@Html.Partial("~/Views/Orders/OrderItemAddPopup.cshtml", Model)
</div>
</div>
</div>
你为什么在主页上使用表单标签?@Sharun我在一个更大的项目上有这个问题,这些只是我在一个虚拟项目上放在一起复制这个问题的一些片段。实际上,我在我的项目中使用了@Html.BeginForm(smth…),但我这样做是为了尽可能精确地复制它。您真的需要将第二个表单放在主表单中吗?同时尝试将
@Html.ValidationSummary()
移动到表单标记的内部。正如我说的,你不需要在主表单中包含第二个表单。尝试将“@Html.Partial(“~/Views/Orders/OrderItemAddPopup.cshtml”,Model)”放在上面评论中讨论过的主要表单之外,我不提交该表单。
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<div id="contentDiv">
<div style="margin-top: -31px;">
<form>
<table class="tableFormLayout" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="button" id="openOrderItemAddPopup" value="Add" />
</td>
</tr>
</table>
</form>
<div id="mydiv">
@Html.Partial("~/Views/Orders/OrderItemAddPopup.cshtml", Model)
</div>
</div>
</div>
<form id="#orderitemsform">
@Html.ValidationSummary()
<table class="tableFormLayout" cellpadding="0" cellspacing="0">
<tr>
<td>
@Html.LabelFor(m => m.Quantity, new {@class = "label"})
</td>
<td>
@Html.TextBoxFor(m => m.Quantity, new {data_mini = "true", type = "number", id = "txtQuantity"})
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="load" data-inline="true" value="Save" data-icon="forward"/>
</td>
</tr>
</table>
</form>
$('#load').click(function () {
$("#mydiv form").validate(); if ($("#mydiv form").valid()) {
alert("valid");
}
else {
alert("invalid");
}
});