javascript - 添加禁用提交按钮的 javascript 时,客户端验证消息不显示

标签 javascript asp.net-mvc

我的 MVC 应用程序中有一个简单的表单,其中包含 2 个下拉字段和一个提交按钮。我启用了客户端验证,它工作正常。我现在添加了一个 javascript 来禁用提交按钮,以防止表单被提交两次。由于某些未知原因,当我添加此脚本时,客户端验证消息未显示。

这是我的表格:

    @using (Html.BeginForm("Recycle", "GetList", FormMethod.Post, new { id = "myForm" }))
    {
        <!-- Server list -->
        <div>
            <span>Site type:&nbsp;</span>
            @Html.DropDownListFor(m => m.uInputS, new List<SelectListItem>
            {
                new SelectListItem {Text = "text", Value = "value" },
                new SelectListItem {Text = "text", Value = "value" }
            }, "Select site type")
            @Html.ValidationMessageFor(m => m.uInputS, "", new { @class = "error" })
        </div>
        <!-- Application list -->
        <br />
        <div>
            <span>Application:&nbsp;</span>
            @Html.DropDownListFor(m => m.uInputA, new SelectList(string.Empty, "Value"))
            @Html.ValidationMessageFor(m => m.uInputA, "", new { @class = "error" })
        </div>
        <br />
        <!-- Submit-->
        <div>
            <input id="Submit1" type="submit" value="Submit" onclick="return FreezeSubmit();" />
        </div>
    }

下面是我用来禁用提交按钮的 jquery。

<script>
 function FreezeSubmit() {
 var s = $("#uInputS").val();
 var a = $("#uInputA").val();
 if ((s && a)) {
    $('#myForm').submit();
    $('#Submit1').prop('disabled', true);
    return true;
 }
 else {
    $('#Submit1').prop('disabled', false);
    return false;
 }
}
</script>

这是我的模型:

    public class GetList
    {
      [Required(ErrorMessage = "Please select site type")]
      public string uInputS { get; set; }

      [Required(ErrorMessage = "Please select application name")]
      public string uInputA { get; set; }
    }

我是编程新手,我无法弄清楚为什么客户端验证消息无法显示,因为我添加了一些 javascript。任何帮助表示赞赏。谢谢!

最佳答案

去掉onclick

<input id="Submit1" type="submit" value="Submit" onclick="return FreezeSubmit();" />

改为

<input id="Submit1" type="submit" value="Submit" />

并且您需要将脚本更改为

<script>
 $(document).ready(function(){
 checkEmpty()
 })

 $('input').change(function() {
     checkEmpty();
 });

 function checkEmpty(){

  var s = $("#uInputS").val();
 var a = $("#uInputA").val();
 if ((s && a)) {

    $('#Submit1').prop('disabled', true);

 }
 else {
    $('#Submit1').prop('disabled', false);

 }
 }
</script>

关于javascript - 添加禁用提交按钮的 javascript 时,客户端验证消息不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56672844/

相关文章:

javascript - 如何让浏览器解压缩 Ajax 获取 gzipped 文本文件?

javascript - 如何用JS存储文件?

jquery - 登录后重新加载 AntiForgeryToken

asp.net-mvc - ASP.NET MVC 中最好的方法是类型化 View 还是非类型化 View ?

javascript - 如何使用 croppie js 裁剪图像并在 asp.net mvc 中上传

asp.net-mvc - 迁移 ASP.NET Web 表单应用程序 : ASP. NET MVC 或 Angular?

javascript - 使用 JQuery 通过单击不同表格中的按钮更改表格行背景颜色

javascript - 如何在 EXTJS 4 中向网格添加工具栏

.net - asp.net Web 应用程序 Azure 应用服务远程调试中的问题

javascript - 不循环访问 JSON 键值