Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 当在视图中访问时,ModelState.IsValid始终为true_Jquery_Asp.net Mvc_Unobtrusive Validation - Fatal编程技术网

Jquery 当在视图中访问时,ModelState.IsValid始终为true

Jquery 当在视图中访问时,ModelState.IsValid始终为true,jquery,asp.net-mvc,unobtrusive-validation,Jquery,Asp.net Mvc,Unobtrusive Validation,通过以下操作,我得到了ModelState.IsValidins jquery代码。但这总是真的,我可以在我的页面上看到错误。 我试图实现的是在提交表单时显示加载。我使用了onclick提交事件。即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载。我还尝试使用表单的提交事件,但结果相同 我的ViewModel具有用于验证的DataAnnotations,表单位于局部视图中。有什么建议可以让我成功地实现这个加载消息吗 这是我的表格 @using (Html.BeginForm("In

通过以下操作,我得到了
ModelState.IsValid
ins jquery代码。但这总是真的,我可以在我的页面上看到错误。 我试图实现的是在提交表单时显示加载。我使用了
onclick
提交事件。即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载。我还尝试使用
表单
提交
事件,但结果相同

我的
ViewModel
具有用于验证的
DataAnnotations
,表单位于局部视图中。有什么建议可以让我成功地实现这个加载消息吗

这是我的表格

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @id = "frmFlightSearch", onsubmit = "CheckModalErros()" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(false)
......
<div class="row" style="margin-bottom:10px;margin-top:10px;">
    <div class="col-lg-3 pull-right">
        <div class="form-group-sm">
            <button id="btnSubmit" type="submit" class="btn btn-sm btn-primary pull-right">
                Search Flights
                <span class="glyphicon glyphicon-plane"></span>
            </button>
        </div>
    </div>
</div>
}
@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Post,new{@id=“frmFlightSearch”,onsubmit=“CheckModalErros()”}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(false)
......
搜索航班
}

如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:

$.ajax({
     success: function(data){
                 $('#DivId').html(data);
                 $.validator.unobtrusive.parse($("#FormId"));
             }
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息

希望这有帮助

编辑:

正如您在单击时所说,您需要检查以下代码行:

if($('#FormId).Valid())
{
   $('#Loader').show(); //show loader if form is valid.
}
else
{
   e.preventDefault(); // prevent default event if form is not valid.
}

如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:

$.ajax({
     success: function(data){
                 $('#DivId').html(data);
                 $.validator.unobtrusive.parse($("#FormId"));
             }
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息

希望这有帮助

编辑:

正如您在单击时所说,您需要检查以下代码行:

if($('#FormId).Valid())
{
   $('#Loader').show(); //show loader if form is valid.
}
else
{
   e.preventDefault(); // prevent default event if form is not valid.
}

如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:

$.ajax({
     success: function(data){
                 $('#DivId').html(data);
                 $.validator.unobtrusive.parse($("#FormId"));
             }
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息

希望这有帮助

编辑:

正如您在单击时所说,您需要检查以下代码行:

if($('#FormId).Valid())
{
   $('#Loader').show(); //show loader if form is valid.
}
else
{
   e.preventDefault(); // prevent default event if form is not valid.
}

如果使用ajax调用使用部分视图加载表单,请在成功回调中执行以下操作:

$.ajax({
     success: function(data){
                 $('#DivId').html(data);
                 $.validator.unobtrusive.parse($("#FormId"));
             }
});
这将解析表单的验证,当您单击submit(提交)和model(模型)无效时,表单将显示验证消息

希望这有帮助

编辑:

正如您在单击时所说,您需要检查以下代码行:

if($('#FormId).Valid())
{
   $('#Loader').show(); //show loader if form is valid.
}
else
{
   e.preventDefault(); // prevent default event if form is not valid.
}
即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载

添加此事件处理程序:

$("#frmFlightSearch").bind("invalid-form.validate", function () {
    // hide 'loading' 
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容

如果客户端验证失败,那么它无论如何也不会发布(使用asp.NETMVC+jquery验证)

即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载

添加此事件处理程序:

$("#frmFlightSearch").bind("invalid-form.validate", function () {
    // hide 'loading' 
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容

如果客户端验证失败,那么它无论如何也不会发布(使用asp.NETMVC+jquery验证)

即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载

添加此事件处理程序:

$("#frmFlightSearch").bind("invalid-form.validate", function () {
    // hide 'loading' 
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容

如果客户端验证失败,那么它无论如何也不会发布(使用asp.NETMVC+jquery验证)

即使页面上存在验证错误,也会显示加载。我不想在这种情况下显示加载

添加此事件处理程序:

$("#frmFlightSearch").bind("invalid-form.validate", function () {
    // hide 'loading' 
});
这将在客户端验证失败时触发,您可以隐藏为“加载”进度显示的内容



如果客户端验证失败,则无论如何都不会发布(使用asp.net mvc+jquery验证).

实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?实际上表单是通过post操作提交的,而不是ajaxForm在页面加载时加载?谢谢兄弟,这正是我所需要的出于好奇为什么总是这样@Html.Raw(Json.Encode(ViewData.ModelState.IsValid))`它不是。第一次加载视图时为
true
,并且在服务器端post操作返回更新后的视图之前保持为true-它不会随着客户端验证而更改,因为没有服务器端代码。如果服务器端代码没有添加手动
ModelState.addmodeleror
,并且仅使用客户端已检查的
[必需]
(etc)属性,则不会出现任何服务器端错误(因为它无论如何都不会发布到服务器端),因此它看起来是真的。通过在post操作的最顶端添加
ModelState.AddModelError(“,”这是一个测试“)进行测试true
,并且在服务器端post操作返回更新后的视图之前保持为true-它不会随着客户端验证而更改,因为没有服务器端代码。如果服务器端代码没有添加手动
ModelState.addmodeleror
,并且仅使用客户端已检查的
[必需]
(etc)属性,则不会出现任何服务器端错误(因为它无论如何都不会发布到服务器端),因此它看起来是真的。通过在post操作的最顶端添加
ModelState.AddModelError(“,”这是一个测试“)进行测试