强制使用无效字段提交表单

时间:2018-06-27 20:58:39

标签: javascript c# jquery html asp.net-mvc

我可以强制提交带有无效文本字段的表单吗?还是可以强制无效字段有效,以便我可以提交表单?

我有一个带有2个提交按钮的表单。如果进行了远程呼叫并输入了正确的值(4位数的密码),则该选项将被禁用并可以提交。第二个按钮应绕过密码字段提交表单。我为用户提供了选择退出输入密码值的选项,因此即使密码字段无效,我也希望能够提交表单,但是我不知道该怎么做!我曾尝试在javascript / Jquery中重置验证并重置表单,但似乎没有任何效果。按下按钮后,我可以拨打Ajax电话,但我更喜欢使用表单邮寄电话。

我可以强制使用无效字段提交表单,还是可以将表单设置为有效?我在C#的视图模型中既具有该字段的html数据属性,又具有该视图模型中的数据属性。我想所有人都需要被禁用或绕过才能提交! 我已经阅读了可以通过JQuery validate调用重置或删除HTML属性的方法,我正在下面的示例JS代码中尝试这种操作,但是c#中的视图模型属性如何?

这是我一直在努力展示的Net Fiddle。下面的代码只是从小提琴中复制并粘贴的内容,而javascript只是我尝试重置/清除无效字段的示例

$("#finish").off('click').on('click', function() {
  $("#Finish").val(true);
  $("#RatingValueHidden").val($("#hostRating").val());


  //$("#rateForm").validate().resetForm();
  //$("#PointCode").val("0000");

  //$("#PointCode").rules("add", {
  //    required: false,
  //    minlength: 0,
  //    maxlength: 0
  //});

  //var validator = $("#rateForm").validate();

  //$("#rateForm").data("validator").resetForm()

  //var isValid = $("#rateForm").valid();
  //validator.resetForm();
  //$("#rateForm").submit();

  

});
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Bootstrap 101 Template</title>

  <!-- CSS Includes -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">

  <style type="text/css">
    .field-validation-error {
      color: #ff0000;
    }
  </style>
</head>

<body>
  <div class="container">
    <div class="col-md-6 col-md-offset-3">
      <h1>Enter 4 digit code</h1>

      @using (Html.BeginForm()) {
      <div class="form-group">
        @Html.TextBoxFor(model => model.PointCode, new { @class = "form-control input-lg", @placeholder = "4 Digit Code", @maxlength = "4", @type = "number", @min = "1000", @max = "9999", @title = "Your point code is a 4 digit number" }) @Html.ValidationMessageFor(model
        => model.PointCode)
      </div>
      <div class="form-group">
        <div style="margin: auto; margin-bottom: 20px;">
          <button id="finish" class="btn-yb btn btn-default btn-lg btn-block" type="submit">No Thanks, I'm done</button>
        </div>


        <div style="margin: auto;">
          <button id="rateReview" class="btn-yb btn btn-default btn-lg btn-block" type="submit" disabled>Rate and Review</button>
        </div>
      </div>


      }

      <br/><br/>
      <div class="alert alert-warning fade">
        <img src="http://entechprod.blob.core.windows.net/dotnetfiddle/morpheus.jpg" style="max-width:100%;" /><br/><br/>
        <strong><span class="alert-content"></span></strong>
      </div>
    </div>
  </div>


</body>

</html>

在我的视图模型中,我具有用于远程呼叫的字段

    [MinLength(4, ErrorMessage = "Your point code is a 4 digit number")]
    [MaxLength(4)]
    [Remote("IsPointCodeCorrect", "Rate", HttpMethod = "Get", ErrorMessage = "The point code entered is incorrect", AdditionalFields = "EventId")]
    public int? PointCode { get; set; }

我的文本字段看起来像这样

<div id="inputGroupPointCode" class="input-group textbox-style" style="width: 100%;">
  @Html.TextBoxFor(m => m.PointCode, new { @class = "form-control input-lg", @placeholder = "4 Digit Code", @maxlength = "4", @type = "number", @min = "1000", @max = "9999", @title = "Your point code is a 4 digit number" })
</div>

1 个答案:

答案 0 :(得分:0)

找到了我要找的答案

<input formnovalidate="formnovalidate">

位于

link