Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 如何删除razor页面中的验证?_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Jquery 如何删除razor页面中的验证?

Jquery 如何删除razor页面中的验证?,jquery,asp.net-mvc-4,Jquery,Asp.net Mvc 4,我有下面这把剃刀的形状 @using (Ajax.BeginForm(new AjaxOptions { })) { <div id="frm" style="visibility:hidden"> <table> <thead> <tr> <td></td> <td></td> <t

我有下面这把剃刀的形状

@using (Ajax.BeginForm(new AjaxOptions { }))
{
    <div id="frm" style="visibility:hidden">
    <table>
    <thead>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>@Html.LabelFor(x => x.emp.FirstName, new { @class = "form-control" })</td>
            <td>@Html.TextBoxFor(x => x.emp.FirstName, new { @class = "form-control" })</td>
            <td>@Html.ValidationMessageFor(x => x.emp.FirstName)</td>
        </tr>
         <tr>
            <td>@Html.LabelFor(x => x.emp.LastName, new { @class = "form-control" })</td>
            <td>@Html.TextBoxFor(x => x.emp.LastName, new { @class = "form-control" })</td>
            <td>@Html.ValidationMessageFor(x => x.emp.LastName)</td>
        </tr>
         <tr>
            <td></td>
            <td></td>
            <td>
                <input type="submit" value="Save" class="btn btn-success" id="save"/>
                <input type="submit" value="close" class="btn btn-success" id="close"/>
            </td>
        </tr>
    </tbody>
</table>
        </div>
}
这是模型类EmployeeModel

public class EmployeeModel
{
    public int EmpID { get; set; }

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

    [Required]
    public string LastName { get; set; }
}
虚拟机

公共类EmployeeVM
{
公共字符串DepartmentID{get;set;}
公共列表部门coll{get;set;}
公共雇员模型emp{get;set;}
公共雇员VM()
{
emp=新员工模型();
}
}

首先,我建议将表单中包含的div设置为
display:none
,而不是
visibility:hidden
(请参阅区别)

注意您的
$('#new').load()
脚本也应该被删除(不清楚您认为这是在做什么)

接下来,出于与上述相同的原因,“关闭”按钮也应该是正常按钮

<button type="button" class="btn btn-success" id="close">Close</button>
旁注:建议
标记中的第一行为
var form=$(“#frm”)
,然后可以将
$('#frm')
的所有实例替换为
form
(它缓存元素,因此效率更高)。事实上,您确实不需要
元素,因为您可以只显示/隐藏
元素本身


注意:您还可以使用“关闭”按钮的重置按钮-
Close
并删除
$(“#frm”).get(0.reset()代码行。

请检查@ParthTrivedi我已经试过了,但它不起作用!当窗体加载并单击“保存”时,将检查验证并显示错误,但当我在加载后单击“关闭”时,窗体甚至不会关闭。一个选项是重新分析验证程序()。但是您的关闭按钮不应该是将触发验证的
。改为使用
请更改
type=“button”
而不是
type=“submit”
您可以向提交按钮添加一个css类的取消来清除或重置验证<代码>
感谢您花时间回答问题,但问题仍然存在。这里的视频显示,您还将“保存”按钮更改为普通按钮-该按钮需要是提交按钮(根据您的原始代码)。还有一个潜在问题,因为表单是隐藏的,具体取决于验证程序的配置方式。您是否可以暂时从
div中删除
style=“display:none”
,以便在首次呈现视图进行测试时显示该视图?我也这样做了,现在表单在页面加载时显示,但按钮仍然不起作用,只是意识到我取消了
。empty()
删除包含错误文本的内部错误
span
元素(请参见编辑)。有关工作示例,请参阅。注意
$('#frm').get(0.reset()
工作正常,但作为替代方案,删除该行并使按钮
关闭
,其功能相同。另外,实际上不需要
元素-您只需显示/隐藏
元素本身。
public class EmployeeVM
{
    public string DepartmentID { get; set; }
    public List<SelectListItem> DepartmentColl { get; set; }

    public EmployeeModel emp { get; set; }

    public EmployeeVM()
    {
        emp = new EmployeeModel();
    }
}
<div id="frm" style="display:none">
<button type="button" id="new">New Entry</button>
$('#new').click(function () {
  $('#frm').show();
});
<button type="button" class="btn btn-success" id="close">Close</button>
$('#close').click(function () {
  //Reset error messages
  $('.field-validation-error').empty().removeClass('field-validation-error').addClass('field-validation-valid');
  //Reset form controls
  $('#frm').get(0).reset();
  $('.input-validation-error').removeClass('input-validation-error').addClass('valid');
  // Reset lazy validation
  $('#frm').data('validator', null);
  $.validator.unobtrusive.parse($('#frm'))
  // Hide the form
  $('#frm').hide();
});