大家早上好!如何禁用/刪除輸入字段上的第一個空格?
我有一種情況,當我應該阻止用戶輸入空間作爲輸入字段的第一個字符。
我這裏有一個演示:http://jsbin.com/foyetolo/2/edit
,當你打空格鍵進行第一次才起作用。當你開始輸入其他字符並在輸入中選擇整個文本(ctrl + a),然後點擊空格鍵,它會在輸入字段的開頭添加空格。
因此,如何檢查keypress/keydown是否第一個字符是空格,返回false並且不允許它將空格鍵入爲第一個字符?
大家早上好!如何禁用/刪除輸入字段上的第一個空格?
我有一種情況,當我應該阻止用戶輸入空間作爲輸入字段的第一個字符。
我這裏有一個演示:http://jsbin.com/foyetolo/2/edit
,當你打空格鍵進行第一次才起作用。當你開始輸入其他字符並在輸入中選擇整個文本(ctrl + a),然後點擊空格鍵,它會在輸入字段的開頭添加空格。
因此,如何檢查keypress/keydown是否第一個字符是空格,返回false並且不允許它將空格鍵入爲第一個字符?
您可以通過檢查關鍵是space
和selection start
如下是0做到這一點:在KEYUP
$(function() {
$('body').on('keydown', '#test', function(e) {
console.log(this.value);
if (e.which === 32 && e.target.selectionStart === 0) {
return false;
}
});
});
嘗試像
$('input').keyup(function() {
if($(this).val() == '') {
if(event.keyCode == 32) {
return false;
}
}
}
這會檢查當前值,然後將運行功能。使用密鑰來檢查密鑰被解除壓縮後的值。如果你使用keydown,它仍然會有價值。在按鍵事件結束後,按鍵可以獲得該值。
或者正如其他人告訴你一直在調整價值。無論用戶是否輸入空格字符,您都可以使用jQuery trim()
方法修剪該值。
$('input').keyup(function() {
$(this).val($.trim($(this).val()));
}
這會添加當前輸入字段值的微調形式。
我忘記提及,在我的情況下,我並不假設使用trim或keyup。 –
這個jQuery功能選擇所有的文本輸入時的一個關鍵是未按下,從字符串的開頭刪除所有空白並替代輸入的值:
<script>
$(":text").keyup(function() {
$(this).val($(this).val().replace(/^\s+/,""));
}
</script>
我不建議使用修剪( )當直接用keyup()替換空格時,因爲當你在一個單詞之後鍵入一個空格時,它將在你開始寫下一個單詞之前被刪除。
修剪前導空格,不需要測試按下的鍵。 – circusdei
[$ .trim()](https://api.jquery.com/jQuery.trim/) – aldanux
一般提示:*永遠不要永遠*阻止某人輸入他們想要輸入的內容。當它們完成時抱怨它(如果你必須的話,'onChange','onSubmit'更好]。 –