首页 > 解决方案 > 如果 jquery 或 javascript 中的第一个字符不是 #,则阻止所有字符和符号

问题描述

如果 jquery 或 javascript 中的第一个字符不是 #(hash),我试图阻止所有字符和符号。

这是我尝试过的,但keyup没有奏效。

<input data-role="tagsinput" type='text' placeholder="Enter search tags..." id="searchtag"> 

$("#searchtag input").keyup(function () {
     if ($(this).val().length >= 1){
        if ($(this).val() !== "#"){
            $(this).val('');
        }
     }
 });

标签: javascriptjquery

解决方案


一种选择是阻止按键按下时的每个事件,因此该事件不会注册,并且您不需要删除已添加的字符。

注意: if 语句可以简化,为了清楚起见,这样写。

尝试运行以下代码段:

const input = document.getElementById('searchtag');
input.addEventListener('keydown', function(e) {
  if (e.key === '#' && this.value.length === 0) {
    // Do nothing
  } else if (this.value.length > 0 && this.value[0] === '#') {
    // Do nothing
  } else {
    e.preventDefault();
  }
});
<input type="text" id="searchtag">


推荐阅读