我有一些 HTML:
<input type="text" />
我試圖做到這一點,當字符限制達到 12 時,javascript 會自動從輸入欄位中洗掉下一個字符。在此處查看代碼筆:https : //codepen.io/jadedeterville/pen/NWayzpM
這是我的JS:
inputEl.addEventListener("keyup", fixLength);
function fixLength() {
const inputElValue = inputEl.value.length;
if (inputElValue > 11) {
inputEl.innerHTML.slice(12);
}
}
我也嘗試過inputEl.slice(12);
,inputElValue.slice(12);
但兩者都告訴我 .slice 不是函式。我嘗試添加 toString() 但這也不起作用。
欣賞一些建議。我已經看這個很久了。
先感謝您!
uj5u.com熱心網友回復:
試試下面的代碼。
if (inputElValue > 11) {
inputEl.value = inputEl.value.slice(0,12);
}
uj5u.com熱心網友回復:
您的腳本中存在三個錯誤:
- 因為
inputEl.innerHTML.slice(12);
您要對從字串開頭到索引 12 的任何內容進行切片。所以基本上您是在清除整個字串。如果您想保留字串的特定部分,最好使用string.substr(startIndex, length)
- 您沒有將切片操作的結果分配給
<input>
文本框,例如inputEl.innerHTML=inputEl.innerHTML.slice(12);
- 您應該使用該
.value
屬性而不是.innerHTML
因為后者將變為空。
把它們放在一起:
let inputEl = document.getElementById("inp");
inputEl.addEventListener("keyup", fixLength);
function fixLength() {
const inputElValue = inputEl.value.length;
if (inputElValue > 11) {
inputEl.value = inputEl.value.substr(0, 12);
}
}
<input type="text" id="inp" />
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/398008.html
標籤:javascript 片 添加事件监听器