Javascript/jQuery 提交表单验证

标签 javascript jquery forms validation

我是网络开发新手,我正在尝试使用 javascript/jquery 创建一个简单的表单验证。

我起草了一个与我的表格非常相似的简单表格,如下所示:

<form>
    <input class="price" type="text" />
    <br />
    <input class="price" type="text" />
    <br />
    <input class="price" type="text" />
    <br />
    <input class="price" type="text" />
    <br />
    <button type="submit" onclick='return validateSubmit();'>Save</button>
</form>

我想要发生的是,当用户单击提交按钮时,它会在允许提交之前检查每个输入框是否包含有效的数字(价格),如果一个或多个输入框无效,则它将突出显示警报错误“突出显示的文本框上的输入无效”或类似的内容。经过几次搜索后,这就是我的脚本中的内容:

var validateSubmit = function () {
    var inputs = $('.price');
    var errors = 'False';
    for (var i = 0; i < inputs.length; i++) {
        if (isNaN(inputs[i].value)) {
            $('.price')[i].focus();
        }
        errors = 'True';
    }
    if (errors == 'True') {
        alert('Errors are highlighted!');
        return false;
    }
    return true;
};

我明白我所做的事情出了什么问题,但我不知道如何解决。
我知道我们一次只能 focus() 1 个元素,但我想要产生一些效果,它突出显示包含无效字符的输入框。
请告诉我该怎么做,或者如果有更好的方法,你能给我看一些例子吗?我看到 bootstrap 对于这个焦点有一些 css 效果,但我不知道如何实现它。谢谢!

最佳答案

您可以向具有错误值的输入添加一个类。例如,该类可以添加边框。

var validateSubmit = function () {
  
    var inputs = $('.price');
    var errors = 'False';
   
    for (var i = 0; i < inputs.length; i++) {
        if (isNaN(inputs[i].value)) {
            $(inputs[i]).addClass('error');
            errors = 'True';
        } else {
          $(inputs[i]).removeClass('error');
        }
        
    }
  
    if (errors == 'True') {
        alert('Errors are highlighted!');
        return false;
    }
    return true;
};
.error {
  border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <input class="price" type="text" />
    <br />
    <input class="price" type="text" />
    <br />
    <input class="price" type="text" />
    <br />
    <input class="price" type="text" />
    <br />
    <button type="submit" onclick='return validateSubmit();'>Save</button>
</form>

关于Javascript/jQuery 提交表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250269/

相关文章:

javascript - 尝试在 javascript 中变形 SVG

javascript - 数据表以编程方式应用过滤器

jquery - 在 jQuery 中使用部分 ID 查找完整 ID

javascript - 如何使用 jQuery 过滤/克隆选择框选项?

HTML 表单请求正文为空 - NodeJs

javascript - 是否存在一个插件,可以在下拉菜单中创建 "Other"选项,并在选择“其他”时创建用于替代输入的文本框?

asp.net-mvc - 在 ASP.NET MVC 中编写表单的最佳方法是什么?

javascript - 如何在appmaker中打印表格?

javascript - 调用下拉列表的 javascript 函数 onchange 事件

javascript - image.onload 事件和浏览器缓存