0

我的应用程序视图上有一组字段,我需要在刷新 jqgrid 之前验证这些字段,但我需要防止提交功能发布到服务器,我只需要表单来验证字段然后调用一个jQuery函数。但我不知道该怎么做。

直到现在我有类似的东西:

@using (Html.BeginForm())
{
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)

   @Html.HiddenFor(m => m.scheduledIdPersonaSeleccionada)
   @Html.ValidationMessageFor(model => model.scheduledIdPersonaSeleccionada)

   <button type="submit" class="BTNTexto" id="buscarPorPersona">
         <img src="~/Images/Icons/search.png" />
         <span>@Html.Raw(Res_String.BuscarTurnos)</span>
   </button>
}

和一个名为的 jquery 函数reloadGrid(),所以我需要当我按下按钮时验证检查字段(在我的示例中为 1)然后如果一切正常调用我的reloadGrid()函数,我的验证也不起作用

pd jquery 验证库加载正常

4

1 回答 1

1

我们使用 3 种方法。首先使用@Rosdi 的代码并将您的验证添加到事件中

if($('#scheduledIdPersonaSeleccionada').val() == ""){
    alert('something');
}

您还可以使用 ajax 回调到服务器并发送要验证的字段

$.ajax({
    type: "POST",
    url: "@(Url.Action("Action", "Controller"))",
    data: { data: 'data', data1: 'data1'},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        if(result.Success){

        }else{

        }
    }
});

你提到避免提交,但我们也使用它。将属性放在字段上

[Required]
public string scheduledIdPersonaSeleccionada { get; set; }

然后在您的控制器中检查模型状态

if(ModelState.IsValid){

}else{
    return View(model);
}

第三种方法是最简单的,因为它会为您发回模型,并且检查是使用您发送的属性完成的。希望这会有所帮助。

于 2013-10-07T14:23:26.973 回答