TextOnly jquery select2输入

问题描述 投票:0回答:1

我想创建一个jQuery Select2输入表单元素,其中输入将只接受文本值,而不是数字,也不是特殊字符。

我尝试使用其官方文档页面中提供的html模式无济于事。

[请帮助我在jQuery Select2表单字段上添加仅字母约束。

jquery jquery-select2
1个回答
0
投票

尝试一下...

$(this).val($(this).val().replace(/[^a-z]/g,''));

if(event.which < 97 /* a */ || event.which > 122 /* z */) {
    event.preventDefault();
}

$(".select2").select2({
    tags: true,
    allowClear: true
});

$(document).on('keypress', '.select2-search__field', function () {
    $(this).val($(this).val().replace(/[^a-z]/g,''));

     if(event.which < 97 /* a */ || event.which > 122 /* z */) {
        event.preventDefault();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>

<select class='select2' style='min-width: 100px;'>
  <option/>
  <option>Red</option>
  <option>White</option>
  <option>Blue</option>
  <option>Read</option>
</select>

0
投票

使用data('select2')input事件

var select = $('select')
  .select2()
  .data('select2')

select.dropdown.$search.on('input', function() {
  this.value = this.value.replace(/[^a-z]/g,'')
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.min.js"></script>

<select class="select" style="width:100%">
  <option value="Alaska">Alaska</option>
  <option value="Alaska">Alaska</option>
  <option value="California">California</option>
  <option value="Nevada">Nevada</option>
  <option value="Oregon">Oregon</option>
  <option value="Washington">Washington</option>
  <option value="Arizona">Arizona</option>
</select>
© www.soinside.com 2019 - 2024. All rights reserved.