Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模态弹出窗口上的Jquery验证_Jquery_Jquery Mobile_Jquery Validate_Unobtrusive Validation - Fatal编程技术网

模态弹出窗口上的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");
    }
});