querySelectorAll 检测输入中的值
querySelectorAll detecting value in input
我有多个输入我想根据用户是否在其中输入值来区分。
<input type="text" class="foo"> <br/>
<input type="text" class="foo" value = "D"> <br/>
//and so on..
<button onclick="calculate()">Hightlight</button>
我编写的代码仅适用于属性值,而不是在启动函数之前检测 "manually" 键入的值:
function calculate() {
var allinputs = document.querySelectorAll('input[value][type="text"]:not([value=""])');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
allinputs[i].style.backgroundColor = "lime";
}
}
我只想检测用户在通过突出显示按钮提交内容时键入内容的输入。
有没有办法在纯 javascript 中做到这一点?
这是我的fiddle:https://jsfiddle.net/Lau1989/Lytwyn8s/
感谢您的帮助
您需要像这样检查值
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
if (allinputs[i].value == '') {
allinputs[i].style.backgroundColor = "lime";
}
}
}
<input type="text" class="foo">
<br/>
<input type="text" class="foo" value="D">
<br/>
<input type="text" class="foo" value="G">
<button onclick="calculate()">Hightlight</button>
<br/>
<br/>
<div id="output"></div>
如果您想在用户填写输入并再次点击时删除石灰背景,您可以添加 else
语句。
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
if (allinputs[i].value == '') {
allinputs[i].style.backgroundColor = "lime";
}else {
allinputs[i].style.backgroundColor = "white";
//allinputs[i].removeAttribute("style") or that
}
}
}
<input type="text" class="foo">
<br/>
<input type="text" class="foo" value="D">
<br/>
<input type="text" class="foo" value="G">
<button onclick="calculate()">Hightlight</button>
<br/>
<br/>
<div id="output"></div>
更新
你需要那个
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
if (!allinputs[i].hasAttribute("value")) {
if(allinputs[i].value !== '') {
allinputs[i].style.backgroundColor = "lime";
}else {
allinputs[i].removeAttribute("style");
}
}
}
}
<input type="text" class="foo">
<br/>
<input type="text" class="foo" value="D">
<br/>
<input type="text" class="foo" value="G">
<button onclick="calculate()">Hightlight</button>
<br/>
<br/>
<div id="output"></div>
无法使用 CSS select 或 select 清空输入(参见 Matching an empty input box using CSS),但您可以通过测试应用样式前的值:
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
var input;
for (var i = 0; i < myLength; ++i) {
input = allinputs[i];
if (input.value) {
input.style.backgroundColor = "lime";
}
}
}
我有多个输入我想根据用户是否在其中输入值来区分。
<input type="text" class="foo"> <br/>
<input type="text" class="foo" value = "D"> <br/>
//and so on..
<button onclick="calculate()">Hightlight</button>
我编写的代码仅适用于属性值,而不是在启动函数之前检测 "manually" 键入的值:
function calculate() {
var allinputs = document.querySelectorAll('input[value][type="text"]:not([value=""])');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
allinputs[i].style.backgroundColor = "lime";
}
}
我只想检测用户在通过突出显示按钮提交内容时键入内容的输入。 有没有办法在纯 javascript 中做到这一点?
这是我的fiddle:https://jsfiddle.net/Lau1989/Lytwyn8s/
感谢您的帮助
您需要像这样检查值
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
if (allinputs[i].value == '') {
allinputs[i].style.backgroundColor = "lime";
}
}
}
<input type="text" class="foo">
<br/>
<input type="text" class="foo" value="D">
<br/>
<input type="text" class="foo" value="G">
<button onclick="calculate()">Hightlight</button>
<br/>
<br/>
<div id="output"></div>
如果您想在用户填写输入并再次点击时删除石灰背景,您可以添加 else
语句。
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
if (allinputs[i].value == '') {
allinputs[i].style.backgroundColor = "lime";
}else {
allinputs[i].style.backgroundColor = "white";
//allinputs[i].removeAttribute("style") or that
}
}
}
<input type="text" class="foo">
<br/>
<input type="text" class="foo" value="D">
<br/>
<input type="text" class="foo" value="G">
<button onclick="calculate()">Hightlight</button>
<br/>
<br/>
<div id="output"></div>
更新
你需要那个
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
for (var i = 0; i < myLength; ++i) {
if (!allinputs[i].hasAttribute("value")) {
if(allinputs[i].value !== '') {
allinputs[i].style.backgroundColor = "lime";
}else {
allinputs[i].removeAttribute("style");
}
}
}
}
<input type="text" class="foo">
<br/>
<input type="text" class="foo" value="D">
<br/>
<input type="text" class="foo" value="G">
<button onclick="calculate()">Hightlight</button>
<br/>
<br/>
<div id="output"></div>
无法使用 CSS select 或 select 清空输入(参见 Matching an empty input box using CSS),但您可以通过测试应用样式前的值:
function calculate() {
var allinputs = document.querySelectorAll('input[type="text"]');
var myLength = allinputs.length;
var input;
for (var i = 0; i < myLength; ++i) {
input = allinputs[i];
if (input.value) {
input.style.backgroundColor = "lime";
}
}
}