asp.net 如果表单无效,则 MVC 禁用提交按钮

asp.net mvc disable submit button if form is invalid

本文关键字:MVC 提交 按钮 net 如果 表单 无效 asp      更新时间:2023-09-26

如果表单存在验证错误,用户只有在表单有效时才能单击它,有没有办法禁用/提交表单提交按钮。我正在使用 MVC 4 和 razor 的"远程"属性验证 ASP.Net 不显眼的验证。

感谢和最诚挚的问候

取决于您在哪里进行验证。 如果你在服务器端使用 jquery 执行此操作,你可以添加 e.preventDefault 来检查它是否无效,并且在满足条件之前不会触发按钮单击。 如果您使用属性进行服务器端验证,则可以检查模型状态,例如

if (ModelState.IsValid){
}else{
}

如果模型状态有效(数据通过所有检查),则运行一组代码。 如果模型状态无效,则只需返回视图即可返回到开始的位置,并向用户传递包含任何失败的消息。 希望这有所帮助。

更新:

刚刚看到您评论的编辑。 对于 ajax 调用,您需要使用 prevent default。

$('.SubmitButton').on('click', function(e){
   $.ajax({
      //your call
      success: function(result){
          if(result.false){
              e.preventDefault();
              alert(result.message);
          }
      }
   });
});

因此,如果调用成功,提交调用将通过。 如果为 false,则 jquery 将停止按钮单击,然后您可以显示消息或执行其他操作。