以良好可靠的方式验证表单输入


Validate Form Inputs on a good and reliable way

在我工作的页面上,有很多输入表单。

我想在提交之前检查用户输入。

示例

HTML/PHP

<input type="text" name="adress" id="adress">
<input type="text" name="amount" id="amount">

实际上,我在Javascript 中执行以下操作

Javascript

function dataValidation() {
error=false;
var adress = document.getElementById('adress').value;
var amount = document.getElementById('adress').value;
if (adress == ""){
error=true;
}
if (amount >0 && amount < 999){
}
else {
error=true;
}
if (error == false){
document.forms["myForm"].submit();
}
}

所以,基本上这对我来说很好,但问题是,我必须为每个表单创建该函数,并为每个字段添加一个IF

所以,我正在寻找一个更好的解决方案

想法1:添加一个列表,提供输入类型,如

adress = not empty,
amount = >0 && <999,

然后创建一个函数,用该列表检查所有字段

想法2:直接在输入字段中添加一个标签或其他东西,它应该包含什么。然后创建一个检查所有字段的函数

是否有人知道如何做到这一点,并愿意帮助/建议我?

您可以通过jquery尝试如下:你的html:

<input type="text" name="adress" id="adress">
<input type="text" name="amount" id="amount">
    <input type="button" id="check_input">

并对所有输入字段应用jquery

 $("#check_input").click(function() {
       $("input").each(function() {
          var element = $(this);
       if(element.val() == "") {
          element.css("border","1px solid red");
          element.attr("placeholder","Field is empty"); 
          return false;
          }
          });
          });

如果你有多个具有相同字段的表单,尝试从外部调用验证,除了我不知道任何其他方法之外,它会减少你的一些工作,所以让我们等待其他人回复

您可能需要考虑使用HTML5。

HTML5可以节省编写JS验证的时间。例如,要验证电子邮件地址,可以使用以下方法:

<input type="email" name="email" required />

请注意type="email"和必填项。您可以使用带有正则表达式模式的HTML5表单属性,而不是使用js进行验证。

例如,如果我想创建一个只接受一个数字和3个大写字母的输入字段,我可以很容易地使用RegEx模式:

<input type="text" pattern="[0-9][A-Z]{3}">

阅读更多关于HTML5和RegEx的内容。它可以帮助你。