【问题标题】:page redirect after success bootstrap validation without using php成功引导验证后页面重定向而不使用php
【发布时间】:2022-01-02 05:59:16
【问题描述】:

团队,

我正在尝试在表单验证成功后重定向。如果不成功,则必须在同一页面中;如果成功,则必须重定向其他页面

我在类验证代码之后添加了以下行

$(location).attr('href', 'data.html');

它正在重定向到下一页,但我没有看到任何错误消息我错过了一些验证。

这是我的全部代码。

$(function () {
'use strict'
$('#data_input').on('submit', function (event) {
    if (!event.target.checkValidity()) {
        event.preventDefault()
        event.stopPropagation()

    }
    $(this).addClass('was-validated')
    $(location).attr('href', 'data.html');
    return true;

});
$("#resetbtn").on("click", function (event) {
    event.preventDefault();
    $('#data_input')
        .trigger("reset")
        .removeClass('was-validated')
});
});
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/fontawesome.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
<form class="requires-validation" id="data_input" method="post" novalidate>
  <div class="form-group row">
    <div class="col">
      <label> Name</label> <input type="text" class="form-control" name="projectName" required>
      <div class="valid-feedback">Valid.</div>
      <div class="invalid-feedback">Please fill out this field.</div>
    </div>
    <div class="col">
      <label>Code</label> <input type="text" class="form-control" name="projectCode" required>
      <div class="valid-feedback">Valid.</div>
      <div class="invalid-feedback">Please fill out this field.</div>
    </div>
  </div>
  <div class="form-group row">
    <div class="col">
      <label>Number</label> <input class="form-control" type="text" name="sprintNumber" required>
      <div class="valid-feedback">Valid.</div>
      <div class="invalid-feedback">Please fill out this field.</div>
    </div>
  </div>
  <div class="form-group row">
    <div class="col"> <label>Start Date:</label> <input type="text" class="form-control has-feedback-left" id="fromdate" placeholder="Please Enter Start Date" name="fromdate" required>
      <div class="valid-feedback">Valid.</div>
      <div class="invalid-feedback">Please fill out this field.</div>
    </div>
    <div class="col"> <label>End Date:</label> <input type="text" class="form-control has-feedback-left" id="todate" placeholder="Please Enter End Date" name="todate" required>
      <div class="valid-feedback">Valid.</div>
      <div class="invalid-feedback">Please fill out this field.</div>
    </div>
  </div>
  <!--<div class="form-group row">
                    <div class="col">
                        <label>Total Days</label> <input type="text" class="form-control has-feedback-left"
                            name="numberdays" id="numberdays" disabled>
                    </div>
                </div>-->
  <br />
  <button id="submit" type="submit" class="btn btn-primary">Next</button>
  <button id="resetbtn" type="button" class="btn btn-secondary">Clear</button>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>

请让我知道我在这里做错了什么

【问题讨论】:

    标签: javascript jquery twitter-bootstrap bootstrapvalidator


    【解决方案1】:

    在您的活动中提交。您使用验证 if 语句 (checkvalidity)。

    $('#data_input').on('submit', function (event) {
    **if (!event.target.checkValidity()) {**
        event.preventDefault()
        event.stopPropagation()
    
    }
    $(this).addClass('was-validated')
    **$(location).attr('href', 'data.html');**
    return true; ...
    

    但无论它是否有效,您仍然会在之后执行位置重定向。 重定向应该放在 if 中,而不是在任何验证之前总是会被重定向。

    【讨论】:

    • 我在这里做错了什么
    • 您的位置 href 放置不当。您需要将它放在 if 语句中,因为它似乎在按下按钮时触发,无论是否经过验证
    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 2020-08-28
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多