jQuery切换号码和字符输入



如何在文本框中切换字符和数字输入?

我有一个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, '');
   }); `

触发变更事件时。

最新更新