javascript - 如果 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('');
}
}
});
解决方案
一种选择是阻止按键按下时的每个事件,因此该事件不会注册,并且您不需要删除已添加的字符。
注意: 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">
推荐阅读
- shell - 使用批处理文件在远程计算机上调整 PowerShell 窗口的大小
- javascript - 在 Javascript 中使用 Window.saveAs 函数另存为 Excel
- php - 在关系表中显示默认图像
- javascript - 如何在不重新加载的情况下显示另一个页面?
- javascript - 打字游戏——希望所有输入的字母都是小写的
- reactjs - 我如何在反应地图之外获得儿童道具价值
- c# - 如何在 EditorWindow 脚本中加粗 EditorGUILayout.Toggle?
- java - response.body().getBasketShopList 为空,但 Postman 中的 API JSON 不为空
- azure-language-understanding - 我是否必须教 luis.ai 什么是“员工”?
- angular - 模拟角度花式输入