基本上我一直试图设计一个js脚本来阻止输入开头存在空格字符,我一直试图弄清楚这一点,但到目前为止还没有运气。该主题的大多数工作示例都基于jQuery,我找不到任何有用的示例in pure java script
。 没有jQuery纯Javascript 代码建议。
//??

<input id='noWhiteSpaceAtTheStart' type='text'>
&#13;
答案 0 :(得分:2)
您可以尝试使用RegEx /^\s/
来匹配字符串开头的空白区域。如果条件为真,则只需将输入值设置为空白(''
):
function validate(input){
if(/^\s/.test(input.value))
input.value = '';
}
<input id='noWhiteSpaceAtTheStart' oninput="validate(this)" type='text'/>
答案 1 :(得分:0)
let yourInput = document.getElementById('noWhiteSpaceAtTheStart');
yourInput.addEventListener('input', () => {
yourInput.value = yourInput.value ? yourInput.value.trimStart() : ''
})
<input id='noWhiteSpaceAtTheStart' type='text'/>
这应该可以解决问题:
关于输入事件,如果input.value
是undefined
(测试falsy就足够了)设置一个空字符串,只是为了确保我们不在未定义的对象上调用方法...
否则,在调用trimStart后返回相同的值!
编辑:第一个回答我建议使用change
事件 - 但只触发“提交”:点击外部,按Tab键等等... input
事件触发于每次编辑。
答案 2 :(得分:0)
var inp = document.querySelector('#noWhiteSpaceAtTheStart');
inp.addEventListener("keypress",function(e){
var key = e.keyCode;
if(key === 32){
e.preventDefault();
return false;
}
})
&#13;
<input id='noWhiteSpaceAtTheStart' type='text'>
&#13;