2 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
您忘記了 jQuery CDN 并且正在使用p而不是input,那么您需要使用html()而不是val()因?yàn)樵損元素不需要值。
而且你不需要寫$(this).val((tval).substring(0, tlength - 1)),因?yàn)樗鼤?huì)返回到句子的開(kāi)頭,所以只需使用 apreventDefault()來(lái)停止寫。
嘗試這個(gè) :
function limitMessage(id, e) {
var tval = $('#' + id).html(),
tlength = tval.length,
set = 10,
remain = parseInt(set - tlength);
if (remain <= 0 && e.which !== 0 && e.charCode !== 0) {
e.preventDefault();
}
}
body {
background-color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="business_title" contentEditable="true" onkeypress="limitMessage(this.id,event);">hello</p>

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
請(qǐng)嘗試這個(gè)。
function limitMessage(id, e) {
var tval = $('#' + id).html(),
tlength = tval.length,
set = 10,
remain = parseInt(set - tlength);
if (remain <= 0 && e.which !== 0 && e.charCode !== 0) {
$('#' + id).html((tval).substring(0, set + 1));
e.preventDefault();
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="business_title" contentEditable="true" onkeypress="limitMessage(this.id,event);">hhhhh</p>
解釋
您使用的是 .val 而不是 .html。
當(dāng)您將字符串插入回去時(shí),光標(biāo)重置為字符串的開(kāi)頭,并添加新的字符,并修剪字符串末尾的字符。為了解決這個(gè)問(wèn)題,我添加了 e.preventDefault 以阻止添加字符。
- 2 回答
- 0 關(guān)注
- 180 瀏覽
添加回答
舉報(bào)