在输入的开头预防空格

时间:2018-06-07 10:05:23

标签: javascript

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



//??

<input id='noWhiteSpaceAtTheStart' type='text'>
&#13;
&#13;
&#13;

3 个答案:

答案 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.valueundefined(测试falsy就足够了)设置一个空字符串,只是为了确保我们不在未定义的对象上调用方法...

否则,在调用trimStart后返回相同的值!

编辑:第一个回答我建议使用change事件 - 但只触发“提交”:点击外部,按Tab键等等... input事件触发于每次编辑。

答案 2 :(得分:0)

&#13;
&#13;
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;
&#13;
&#13;