- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从表单中获取所有空输入 (value=""
)。
var inputsEmpty = loginForm.querySelectorAll('input:not([type="hidden"]):not([value=""])');
不断返回元素
0: input#companyName.form-control
1: input#userName.form-control
2: input#password.form-control
尽管它们不为空(在控制台中单击它们会显示value:''
。
我尝试使用 jQuery,认为它可能与查询选择器有关
var inputsEmpty = $('input:not([type="hidden"]):not([value=""]):not([id="email"])');
我得到了相同的结果。
<form class="form-horizontal form-material" id="loginform" action="/login/user_login" method="POST" novalidate>
<h3 class="text-center m-b-20">Sign In</h3>
<div class="form-group ">
<div class="col-xs-12">
<input class="form-control" type="text" name='company_name' id="companyName" placeholder="Company Name" required="1" minlength="6" maxlength="30"/>
</div>
</div>
<div class="form-group ">
<div class="col-xs-12">
<input class="form-control" type="text" name="user_name" id="userName" autocomplete="off" placeholder="User Name" placeholder="Username" required="1" minlength="6" maxlength="30">
</div>
</div>
<div class="form-group">
<div class="col-xs-12">
<input class="form-control" type="password" name='password' id="password" placeholder="Password" required="1" minlength="6" maxlength="30">
</div>
</div> .......
JS:
const loginForm = document.querySelector('#loginform');
const submit = loginForm.querySelector('#submitBtn');
// const $loginForm = $('#loginform');
bootstrapValidate(
'#companyName',
'min:6:Invalid company name|max:30:Invalid company name|required:This field is required'
);
bootstrapValidate(
'#userName',
'min:3:Invalid company name|max:30:Invalid company name|required:This field is required'
);
bootstrapValidate(
'#password',
'min:6:Password too short (6 min)|max:30:Password too long (30 max)|required:This field is required'
);
function toSubmit() {
var notValid = loginForm.querySelector('.is-invalid');
// var inputsEmpty = loginForm.querySelector('input:not([value=""])');
// var inputsEmpty = loginForm.querySelector('input:not([value]):not([value=""])');
var inputsEmpty = loginForm.querySelectorAll('input:not([type="hidden"]):not([value=""])');
// var inputsEmpty = loginForm.querySelector('input[value=""]:not([type="hidden"])');
// var inputsEmpty = $('input:not([type="hidden"]):not([value=""]):not([id="email"])');
console.log(notValid);
console.log(inputsEmpty);
if (notValid || inputsEmpty)
return false;
else
loginForm.submit();
}
submit.onclick = toSubmit;
如何仅列出空输入
最佳答案
因为 value 是一个属性,所以当您对其进行选择器时,只会选择初始值(也称为属性),因为您更改了值,选择器将不再起作用。
因此另一个解决方案是直接在 Javascript 中检查值。
inputsEmpty
检查,简单地使用普通选择器,但这次使用 querySelectorAll,转换为简单数组,并使用 Array.some
查找是否有这些都是空白的。 值==""
。
下面是一个工作片段,显示了这一点。
ps。要使用您的代码,只需将您的inputsEmpty 替换为这个即可。
document.addEventListener("input", () => {
var inputsEmpty =
Array.from(document.
querySelectorAll('input:not([type=hidden])'))
.some(function (e) {
return e.value == "";
});
document.querySelector("#isEmpty").classList.
toggle("hidden", !inputsEmpty);
});
.hidden {
display: none;
}
<input type="hidden" value=""/>
<input type="text" value=""/>
<input type="text" value="hello"/>
<div id="isEmpty">Empty</div>
关于javascript - querySelectorAll ('input:not([type="隐藏"]) :not([value =""])') keeps returning elements although the inputs are empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175475/
我有以下内容: var searchSuggestionsItems = document.querySelectorAll("#search-user-results .live-search-re
我正在尝试查找具有以下内容的元素: doc.querySelectorAll('#divContentList article'); 它运行良好,但另一位开发人员告诉我我应该写: doc.queryS
尝试在错误控制台中执行这 2 个代码块: 第一个。输出节点列表。 var selector = "*[data-type=day][data-day='23']"; var a = document.
这是我的 JavaScript 代码: function answer(){ var list = document.querySelectorAll("#fish"); list[1].onclic
假设我有: ... ... ... ... ... ... ... 如何选择 元素,但仅限于 testimonials-wrapper 内的元素 尝试过:d
我创建了一个表,我们将其命名为 RPT_ACCOUNTS 代码|描述|类型01|银行|BA02|税|TA 当我从数据表中提取信息时,我会在 html 中直观地创建表格 row.dataset.rpt_
document.querySelectorAll('#salary-min, #salary-max').addEventListener('input', event => event.tar
这个问题已经有答案了: What do querySelectorAll and getElementsBy* methods return? (12 个回答) 已关闭 2 年前。 javaScrip
为了简单起见,我有以下 html,它不是我编写的,我无法控制。 我正在尝试为我们的职员编写一个脚本,该脚本必须将数据输入到此 Web 界面,以便她可以将数据从 Excel 复制并粘贴到 Web
我的代码有问题。现在,如果我单击第一个元素,所有元素将变为红色,如果我第二次单击它们将变为绿色。我想为 fa-heart 类的每个元素设置两个独立的事件。我会更好地解释:如果我第一次点击第一个元素 D
我已经创建了简单的 html 表单,我想使用 javascript 为输入字段标签设置动画。我使用 querySellectorAll 方法来识别对象,并使用控制台记录 querySelectorAl
我目前正在尝试适应this demo当您单击应用了相同类的链接时,用于页面转换。 我不确定如何在使用 querySelectorAll 后为具有相同类的所有元素调整以下代码。您认为应该进行哪些调整才能
我目前正在尝试适应this demo当您单击应用了相同类别的链接时,可以实现页面转换。目前,在 @ourmaninamsterdam 的推荐 here 后,我有以下代码:但我似乎无法让它发挥作用。您对
var arr = [].slice.call(document.querySelectorAll("a[href*='pricing']")); 返回一个长度为6的数组。 var arr = [].
我在 querySelectorAll 方面遇到问题。 这是我的代码: $(window).load( function() { // Add animations
在 JavaScript 中使用 :checked 选择器 document.querySelectorAll() 时,我发现存在不一致的行为。当 :checked 选择器用于复选框或单选按钮时,它不
我有一个表单,其中有多个选择框和带有类似名称的数组的输入。所以我有多个名称为 personroom[] 的选择框。我想用这个得到这些 var personroom=document.querySel
不确定这是否是导致我的项目出现错误的原因。 所以我有一堆具有相同类的 div,我通过选择它们 var CampaignInfo = document.querySelectorAll(".campai
假设我有以下标记... 无论如何,我可以使用 querySelectorAll 选择它们吗? 我尝试过 document.querySelectorAll([data-namespace-*])
我想使用 querySelectorAll 获取页面上多个下拉列表的选定值,然后将它们打印在页面上的其他位置。 我正在努力寻找正确的方法来执行此操作,因为它们都有不同的名称(“dropDown[0]”
我是一名优秀的程序员,十分优秀!