Принудительная отправка формы с неверным полем - PullRequest
0 голосов
/ 27 июня 2018

Можно ли принудительно отправить форму с недопустимым текстовым полем? или я могу заставить недействительное поле быть действительным, чтобы я мог отправить форму?

У меня есть форма с 2 кнопками отправки. Тот, который отключен и будет включен для отправки, если сделан удаленный вызов и введено правильное значение (4-значный код доступа). Вторая кнопка должна отправить форму, минуя поле пароля. Я даю пользователю возможность отказаться от ввода значения кода доступа, поэтому я хочу иметь возможность отправить форму, даже если поле кода доступа недопустимо, но я не могу понять, как это сделать! Я пытался в javascript / Jquery сбросить проверку и сбросить форму, но ничего не работает. Я могу сделать Ajax-вызов, когда кнопка нажата, но я бы предпочел использовать формы после вызова.

Могу ли я принудительно отправить форму с недопустимыми полями или установить правильную форму? У меня есть атрибуты данных html для поля и атрибуты данных в модели представления в C #. Я думаю, что все должно быть отключено или обойдено, чтобы представить! Я прочитал, что атрибуты HTML могут быть сброшены или удалены с помощью вызовов проверки JQuery, которые я пытаюсь описать ниже в моем примере кода 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 голосов
/ 28 июня 2018

Нашел ответ, который искал

<input formnovalidate="formnovalidate">

найдено на

ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...