Ответ 1
Вместо $('#d,d2,d3')
используйте $('#d, #d2, #d3')
, а для оператора if используйте $(this).val()
Я хочу очистить указанный ввод, если значение не является числом. функция работает для одного ID, но я хочу, чтобы она работала для нескольких. конечно, я могу писать функцию несколько раз, но я не хочу этого делать.
следующий код получает эффект только для ввода с id "d". Я не знаю, как идентифицировать другие идентификаторы. может ли кто-нибудь помочь?
<input id="d" />
<input id="d2" />
<input id="d3" />
<script type="text/javascript">
$('#d,d2,d3').keyup(function(){
if($('#d,d2,d3').val() != "") {
var value = $('#d,d2,d3').val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
var intRegex = /^\d+$/;
if(intRegex.test(value)) {}
else {
$(this).val('');
}
}
});
</script>
Вместо $('#d,d2,d3')
используйте $('#d, #d2, #d3')
, а для оператора if используйте $(this).val()
Вы можете использовать запускает селектор вместо ввода нескольких идентификаторов:
$('[id^=d]')
Выше селектор будет работать для всех элементов, идентификаторы которых начинаются с d
например d1
, d2
, d3
и т.д.
Вот как должен выглядеть ваш код (исправление других ошибок):
$('[id^=d]').keyup(function(){
if(this.value != "") {
var value = this.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
var intRegex = /^\d+$/;
if(intRegex.test(value)) {}
else {
this.value = '';
}
}
});
$('input[id^=d]').keyup(function() {
var val = $.trim( this.value ); // or $.trim( $(this).val() )
if (val != "") {
var value = val.replace(/^\s\s*/, '').replace(/\s\s*$/, ''),
intRegex = /^\d+$/;
if (intRegex.test(value)) {
// do something
} else {
$(this).val('');
}
}
});
[id^=d]
- это начало с селектора, что означает, id
начать с d
.
Читайте о селектор jQuery
Вы забыли #
для d2 & d3
. А также a this
.
$('#d,#d2,#d3').keyup(function(){
if($(this).val() != "") {
var value = $(this).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
var intRegex = /^\d+$/;
if(intRegex.test(value)) {}
else {
$(this).val('');
}
}
});
Вы можете добавить атрибут класса
<input id="d" class="A"/>
<input id="d2" class="A"/>
<input id="d3" class="A"/>
используйте следующий селектор по имени класса
$('.A').keyup
Вы забыли хэш для двух других идентификаторов:
$('#d,#d2,#d3')