如何在文本框中切换字符和数字输入?
我有一个jQuery函数,只允许输入上的数字
$('.numeric').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
});
i仅在输入框中应用numeric
类,它将限制字符输入。
我的问题是。
我有一个带有国家列表的选择框
<select class="form-control" id="country_select" name="country">
<option value="44">United Kingdom</option>
<option value="681">Wallis and Futuna</option>
<option value="967">Yemen</option>
<option value="260">Zambia</option>
<option value="263">Zimbabwe</option>
</select>
每当我选择United Kingdom
时,我都想在具有numeric
类的输入框上删除字符限制。我想允许在文本框上输入字母和数字
<input placeholder="Zip/Postal Code" class="numeric" id="company_zip" name="company_zip" type="text">
我有此jQuery代码,但它不起作用。我试图删除numeric
类以允许输入上的字母。但这是行不通的。
$('#country_select').change(function(){
var zip = $('#company_zip');
var country = $(this);
$('#area_code').val($(this).val());
if (country.val() == 44) {
zip.removeClass('numeric');
}else{
if (!zip.hasClass('numeric')) {
zip.addClass('numeric');
}
}
});
它不起作用的原因是事件已经连接到元素上。删除类将无法将已经关联到元素关联的事件。
您应该在文本框的更改事件下对选定的选项值进行检查:
var country = $('#country_select');
$('.numeric').on('input', function (event) {
if(country.val() == 44)
this.value = this.value.replace(/[^0-9]/g, '');
});
触发更改事件时您的类已删除,但是已经添加到输入框的行为将保留在那里,直到我们刷新页面。
。一种方法可以通过包括
来实现这一目标 ` $('.numeric').on('input', function (event) {
this.value = this.value.replace(/[^0-9]/g, '');
}); `
触发变更事件时。