Возможно, вы захотите использовать лучший селектор для элементов input
.Вы можете использовать input[id^='points']
например.Это будет искать input
элементы с id
, который начинается с points
.
. Рассмотрим следующий пример:
var results = $("input[id^='points']");
var points = 'Enter a valid point.';
var regex = '/^[A-Za-z!@#></!?\$%\^\&*\)\(+=._-]+$/g';
results.each(function(i, el) {
if ($(el).val().match(regex)) {
console.log("Match on #" + $(el).attr("id"));
$(el).next('span').html('');
$("<span>", {
class: "errTextboxClass"
}).css("color", "#e03b3b;").html(points).insertAfter($(el));
$(el).focus();
}
});
Используя .each()
, мы можем итерировать каждый изсоответствующие элементы и проверить их на соответствие шаблону RegEx.Вы могли бы также рассмотреть другую модель.Похоже, вы хотите разрешить только цифры, можете попробовать:
^[\D]+$
Это будет соответствовать любой нецифровой.Если бы это был я, я бы запретил Пользователю вводить нецифровые символы в самом поле, используя .keypress()
.Например:
$(function() {
$("input[id^='points']").keypress(function(e) {
console.log(e.which);
if (e.which !== 46 && (e.which < 48 || e.which > 57)) {
e.preventDefault();
}
});
});
label {
width: 80px;
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<label>Points 1</label> <input id="points1" type="text">
</div>
<div>
<label>Points 2</label> <input id="points2" type="text">
</div>
<div>
<label>Name</label> <input id="name1" type="text">
</div>
См. Подробнее: