【问题标题】:How do I make error messages show on the webpage? [duplicate]如何在网页上显示错误消息? [复制]
【发布时间】:2021-11-24 17:05:34
【问题描述】:

function validate() {
  var errMsg = "";
  var result = true;

  var fname = document.getElementById("fname").value;
  if (!fname.match(/^[a-zA-Z]+$/)) {
    errMsg += "Please enter your first name correctly.\n";
    result = false;
  }
  var lname = document.getElementById("lname").value;
  if (!lname.match(/^[a-zA-Z]+$/)) {
    errMsg += "Please enter your last name correctly.\n";
    result = false;
  }
  var email = document.getElementById("email").value;
  if (!email.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/)) {
    errMsg += "Please enter your email correctly.\n";
    result = false;
  }
  var streetname = document.getElementById("streetname").value;
  if (!streetname.match(/^[a-zA-Z0-9\s]+$/)) {
    errMsg += "Please enter your street name correctly.\n";
    result = false;
  }
  var suburb = document.getElementById("suburb").value;
  if (!suburb.match(/^[a-zA-Z\-]+$/)) {
    errMsg += "Please enter your suburb correctly.\n";
    result = false;
  }
  var phone = document.getElementById("phone").value;
  if (!phone.match(/[0-9]{9}/)) {
    errMsg += "Please enter your phone number correctly.\n";
    result = false;
  }

  var gender = document.getElementById("gender").value;
  var start = document.getElementById("start").value;
  var skill = document.getElementById("skill").value;
  var other = document.getElementById("other").value;
  var otherbox = document.getElementById("otherbox").value;

  var postcode = document.getElementById("postcode").value;
  var state = document.getElementById("state").options[
    document.getElementById("state").selectedIndex
  ].text;

  var regex;
  //VIC = 3 OR 8, NSW = 1 OR 2 ,QLD = 4 OR 9 ,NT = 0 ,WA = 6 ,SA=5 ,TAS=7 ,ACT= 0.
  switch (state) {
    case "Please Select":
      return false;
    case "VIC":
      regex = new RegExp(/(3|8)\d+/);
      break;
    case "NSW":
      regex = new RegExp(/(1|2)\d+/);
      break;
    case "QLD":
      regex = new RegExp(/(4|9)\d+/);
      break;
    case "NT":
      regex = new RegExp(/0\d+/);
      break;
    case "WA":
      regex = new RegExp(/6\d+/);
      break;
    case "SA":
      regex = new RegExp(/5\d+/);
      break;
    case "TAS":
      regex = new RegExp(/7\d+/);
      break;
    case "ACT":
      regex = new RegExp(/0\d+/);
      break;
  }
  if (!postcode.match(regex)) {
    errMsg = errMsg + "State and postcode do not match\n";
    result = false;
  }

  if (errMsg) {
    alert(errMsg);
  }

  if (result) {
    storeBooking(
      fname,
      lname,
      start,
      email,
      gender,
      phone,
      streetname,
      suburb,
      state,
      postcode,
      other,
      otherbox
    );
  }
  return result;
}
<form action="https://mercury.swin.edu.au/it000000/formtest.php" method="post" id="regform">
  <p>Your Name: <span id="job1"></span></p>

  <label for="fname">First Name</label>
  <input type="text" id="fname" name="firstname" placeholder="Your name.." required="required" maxlength="25" onkeypress="return (event.charCode > 64 && event.charCode < 91) || (event.charCode > 96 && event.charCode < 123) || (event.charCode==32)">


  <label for="lname">Last Name</label>
  <input type="text" id="lname" name="lastname" placeholder="Your last name.." required="required" onkeypress="return (event.charCode > 64 && event.charCode < 91) || (event.charCode > 96 && event.charCode < 123) || (event.charCode==32)">

  <label for="start">Date of birth:</label>
  <input type="date" id="start" required="required" name="date of birth" value="2021-10-04" />
  <br>
  <br>
  <label for="gender"> Select you gender</label>
  <br>
  <br>
  <select name="gender" id="gender" required="required">
    <option value="" selected>Please Select</option>
    <option value="male">Male</option>
    <option value="female">Female</option>
  </select>
  <br>
  <label for="streetname">Street Address</label>
  <input type="text" id="streetname" name="streetname" required="required" placeholder="Your street name..." maxlength="40" />
  <label for="suburb">Suburb/Town</label>
  <input type="text" id="suburb" name="suburb" required="required" placeholder="Your suburb/town..." maxlength="40">
  <label for="state">Choose a state:</label>
  <br>
  <select name="state" id="state" required="required">
    <option value="">Please Select</option>
    <option value="VIC">VIC</option>
    <option value="NSW">NSW</option>
    <option value="QLD">QLD</option>
    <option value="NT">NT</option>
    <option value="WA">WA</option>
    <option value="SA">SA</option>
    <option value="TAS">TAS</option>
    <option value="ACT">ACT</option>
  </select>
  <br>
  <br>
  <label for="postcode">Postcode</label>
  <input type="text" id="postcode" name="postcode" required="required" placeholder="Your postcode..." maxlength="4" minlength="4" pattern="^[0-9]{4}$">
  <label for="email">Email Address</label>
  <input type="text" id="email" name="emailadd" placeholder="Your email address.." required="required">
  <label for="phone">Phone Number</label>
  <input type="text" id="phone" name="phonenumb" placeholder="e.g. 0451124561" minlength="8" maxlength="12" required="required">
  <br>
  <input type="submit" value="Apply">
  <br>
  <br>
  <input type="submit" id="cancelpurchase" value="Cancel Application"></input>
</form>

如何使错误消息显示在实际网页上,而不是输入旁边的警告框?我似乎在网上找不到任何关于更改错误消息显示的默认方式的信息。如果您需要更少/更多信息,请向我提出建议。

注意:没有 jQuery 或内联 JavaScript。

【问题讨论】:

  • 您可以删除您的验证,因为 HTML5 验证工作正常而您的验证未运行

标签: javascript html


【解决方案1】:

您可以使用display: noneposition: fixed 创建一个&lt;div id="popup"&gt; Error message &lt;/div&gt;,而不是让这个div 可见document.querySelector('#popup').style.display = 'block' 和一个关闭按钮来关闭这个弹出窗口

【讨论】:

    【解决方案2】:

    您似乎正在使用以下代码显示错误消息:

    if (errMsg) {
    alert(errMsg);
      }
    

    如果你得到一个元素的引用,

    例如 var tgtElem = document.getElementById(textStringIdGoesHere);

    然后你可以通过设置它的 textContent 来显示消息,

    例如 tgtElem.textContent = errMsg;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多