Javascript 搜索插入到输入元素中的相等数字或字母数字值
我想遍历所有输入元素,并找出是否存在相同的值 例如,当用户插入1(一),然后再次插入数字1(一),我想应用CSS来更改输入元素的背景色,以获得这两个相等的值,或者不管它们可能有多少 如果用户试图插入字母数字值,JavaScript将处理代码并添加Javascript 搜索插入到输入元素中的相等数字或字母数字值,javascript,jquery,Javascript,Jquery,我想遍历所有输入元素,并找出是否存在相同的值 例如,当用户插入1(一),然后再次插入数字1(一),我想应用CSS来更改输入元素的背景色,以获得这两个相等的值,或者不管它们可能有多少 如果用户试图插入字母数字值,JavaScript将处理代码并添加选择的错误输入CSS类 我希望在该元素上有一个setInterval2秒钟,并从输入中取出字母数字值,以便用户能够再次插入数字 我不介意提议的解决方案是使用JavaScript、jQuery还是两者的组合 html代码: <div class="b
选择的错误输入
CSS类
我希望在该元素上有一个setInterval
2秒钟,并从输入中取出字母数字值,以便用户能够再次插入数字
我不介意提议的解决方案是使用JavaScript、jQuery还是两者的组合
html代码:
<div class="bus-builder-seat-box-container" id="dynamic-bus-builder-1">
<input id="posA100" type="text" class="input seat_box" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA101" type="text" class="input seat_box" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA102" type="text" class="input seat_box" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA103" type="text" class="input seat_box" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA104" type="text" class="input seat_box selected" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA105" type="text" class="input seat_box selected" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA106" type="text" class="input seat_box selected" onchange="bc.seatBoxHandleEvent(this)">
<input id="posA107" type="text" class="input seat_box selected-wrong-input" onchange="bc.seatBoxHandleEvent(this)">
</div>
我建议使用
IsNaN()
函数检查输入是否为数字。另外,keyup
事件更适合输入字段
var inputList = [];
$('.seat_box').keyup(function(elem){
if(IsNaN(elem.value)) return; //input isn't numeric, add your functionality
if (!valueExists(elem)) inputList.push(elem.value);
else //dublicate value, add functionality
});
function valueExists(elem) {
$(".seat_box").each(function(elem) {
if ($.inArray(this.value, inputList) != -1) return true;
else return false;
});
}
您是否考虑使用<代码>输入类型=“数字”<代码>,如果您只允许数字字符?这将是非常有用的,但我可能希望将来的字母数字值添加额外的功能。@ Cracmiko如果您想在将来允许字母数字,则处理代码更改。不要为将来可能需要的东西编写代码,而要为现在需要的东西编写代码-请参阅。此时,将输入设置为数字是满足当前需求的最佳解决方案。最重要的是,它不需要任何代码,因此您可以灵活地进行更改,并可以轻松地继续。在您希望允许字母数字值并掌握该用例的所有要求的那一天,您可以更改代码。@chrisniko Fair,要检查条目是否为数字,请参见此► 要清除值
$(元素)。val(“”)
由于您不使用数字输入,您还需要检查用户输入数字的预期行为,然后字母数字字符将仅删除最后一个字符或整个值,等等如果用户在输入数字后复制粘贴同时包含数字和字母数字的文本,该怎么办?如果用户输入数字之间的字母该怎么办?在删除值之前,是否要求间隔2秒?为什么不马上搬走呢IsNaN()
函数是检查JS中数字输入的好方法。另外,我建议使用keyup
事件,而不是onchange
我希望现在就执行它,但检查是否有相等的值。。。我已经添加了这个小的javascript代码块:var-roxarray=newarray(120);对于(var i=0;i
var inputList = [];
$('.seat_box').keyup(function(elem){
if(IsNaN(elem.value)) return; //input isn't numeric, add your functionality
if (!valueExists(elem)) inputList.push(elem.value);
else //dublicate value, add functionality
});
function valueExists(elem) {
$(".seat_box").each(function(elem) {
if ($.inArray(this.value, inputList) != -1) return true;
else return false;
});
}