在警报后突出显示空的选择框
Highlight empty select box after alert
我有一个使用input:text的网站,选择并选择多个元素,这些元素在单击按钮时生成文本输出。
搜索SO后,我发现了验证代码的示例,当选择字段返回空值时,这些代码会提醒用户——
// alert if a select box selection is not made
var selectEls = document.querySelectorAll('select'),
numSelects = selectEls.length;
for(var x=0;x<numSelects;x++) {
if (selectEls[x].value === '') {
alert('One or more required fields does not have a choice selected... please check your form');
return false;
$(this).addClass("highlight");
}
最后,我试图在警报解除后添加一个条件,这样,通过添加"highlight"类,可以突出显示有问题的选择框,但这没有任何作用。我的高光css是{border: 1px red solid;}
这里有人帮忙吗?
更新答案-谢谢@Adam Rackis
这个代码运行得很好。我添加了一行来删除任何添加的".突出显示"类,用于修复后未导致错误的选择
// alert if a select box selection is not made
var selectEls = document.querySelectorAll('select'),
numSelects = selectEls.length;
$('select').removeClass("highlight");//added this to clear formatting when fixed after alert
var anyInvalid = false;
for(var x=0;x<numSelects;x++) {
if (selectEls[x].value === '') {
$(selectEls[x]).addClass("highlight");
anyInvalid = true;
}}
if (anyInvalid) {
alert('One or more required fields does not have a choice selected... please check your form');
return false;
}
你很接近。在您的循环中,this
不会引用您正在检查的每个选择。
此外,在添加高亮显示类之前,您将返回false。您可能需要跟踪是否有任何select无效,并在完成所有验证后在最后返回false。
最后,考虑将您的警报移动到最底部,这样您的用户就不会看到多个警报。
var anyInvalid = false;
for(var x=0;x<numSelects;x++) {
if (selectEls[x].value === '') {
$(selectEls[x]).addClass("highlight");
anyInvalid = true;
}
}
if (anyInvalid) {
alert('One or more required fields does not have a choice selected... please check your form');
return false;
}
此外,既然您已经在使用jQuery,为什么不多利用一下它的功能呢:
$('select').each(function(i, sel){
if (sel.value === '') {
$(el).addClass("highlight");
anyInvalid = true;
}
});
if (anyInvalid) {
alert('One or more required fields does not have a choice selected... please check your form');
return false;
}
相关文章:
- 根据用户从下拉列表中的选择显示多个文本框
- 根据页面加载时的单选按钮选择显示某些字段
- 根据组合框选择显示特定数据
- 从项目列表Jquery中仅选择(显示:块)元素
- 根据用户复选框选择显示或隐藏下拉框
- 根据以前的选择显示选择选项
- 如何选择显示值而不是value选项
- 根据asp.net中下拉框中的选择显示文本框
- 根据单选按钮的选择显示HTML表单
- 缩小后的大图像上的Jcrop圆形选择显示预览选择区域中的全尺寸图像
- 按数字选择显示输入
- 基于下拉选择显示/隐藏控件mvc 4 razor c#
- 角度选择显示名称和项目
- 获取值并根据用户在 Javascript 上的选择显示
- 根据选择显示表格/表单
- 根据下拉选择显示文本
- 为什么选择显示显示值而不是标签
- 多个文本字段,根据单选选择显示/隐藏(Html,JS)
- 基于多个单选按钮选择显示或隐藏元素
- 根据在选择框中所做的选择显示文本