如果值不是数字,我想清除指定的输入。函数适用于一个ID,但我希望它适用于多个。当然我可以多次写函数但我不想这样做。
以下代码仅对id为“d”的输入生效。我不知道如何识别其他ID。有人可以帮忙吗?
<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>
答案 0 :(得分:28)
而不是$('#d,d2,d3')
使用$('#d, #d2, #d3')
而使用if语句使用$(this).val()
答案 1 :(得分:10)
您可以使用以选择开头,而不是像这样输入多个ID:
$('[id^=d]')
上方选择器适用于其ID以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 = '';
}
}
});
答案 2 :(得分:4)
$('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
开头。
答案 3 :(得分:4)
您忘记了#
的{{1}}。还有d2 & d3
。
this
答案 4 :(得分:4)
您可以添加类属性
<input id="d" class="A"/>
<input id="d2" class="A"/>
<input id="d3" class="A"/>
按类名
使用跟随选择器$('.A').keyup
答案 5 :(得分:3)