当用户将第一个字符输入为空格时,我的代码工作正常,但如果用户插入字符串并返回到第一个位置,则需要占用空格。我如何阻止用户这样做? "#M1_7_othe"这是输入框的id。
$(function(){
var pp;
$("#M1_7_other").keydown(function(event) {
pp =$("#M1_7_other").val();
if( ($("#M1_7_other").val().length) == 0 ) {
if( event.keyCode == 32 ) {
return false;
}
}
});
});
答案 0 :(得分:4)
这不会阻止它,但会删除空格。使用trim()删除前面和后面的空格
var str = " Hello World! ";
alert(str.trim());
输出将是:
Hello World!
IE9,IE8:
看看这个主题:
答案 1 :(得分:1)
您可以使用oninput事件,它也将处理从上下文菜单粘贴的字符串:
$(function () {
$("#M1_7_other").on('input', function (event) {
var posCaret = this.selectionStart;
this.value = this.value.replace(/^\s+/, '');
setCaretPosition(this, posCaret);
});
});
这是来自HERE:
的setCaretPosition()方法function setCaretPosition(elem, caretPos) {
if(elem != null) {
if(elem.createTextRange) {
var range = elem.createTextRange();
range.move('character', caretPos);
range.select();
}
else {
if(elem.selectionStart) {
elem.focus();
elem.setSelectionRange(caretPos, caretPos);
}
else
elem.focus();
}
}
}
答案 2 :(得分:1)
请试试这个,
$(function(){
var pp;
$("#M1_7_other").keydown(function(event) {
pp =$("#M1_7_other").val();
if( event.keyCode == 32 && document.getElementById("M1_7_other").selectionStart === 0) {
return false;
}
});
});
答案 3 :(得分:0)
我的代码是动态的,适用于所有文本框,它适用于所有浏览器,包括Internet Explorer试试这个。
$(function(){
var pp;
$("input:text").keydown(function(event){
if(($(this).val().length)==0 && event.keyCode==32)
{
return false;
}
})
.keyup(function(event)
{
pp = $(this).val();
if(pp.charAt(0)==' ')
{
var pbb = $.trim(pp);
$(this).val(pbb);
}
});
});