Javascript onpaste not working

Javascript onpaste not working

本文关键字:working not onpaste Javascript      更新时间:2023-09-26

使用下面的html和Javascript计算输入字段中输入的字符数,并将其限制为30。我还向用户显示计数器。

计数器更改此事件的值:onfocusonKeyDownonKeyUponpaste

我无法让onpaste工作。当用户使用"CTRL V"进行粘贴时,计数器会更改值,但当使用鼠标/右键单击进行粘贴时则不会更改。我做错了什么?

Jsfidle:https://jsfiddle.net/ow3ubgp0/

HTML:

<input readonly type="text" name="countdown1" size="5" value="30" />
<input type="text" id="my_text_input" name="my_text_input" onfocus="limitText(this.form.my_text_input,this.form.countdown1,30);" onKeyDown="limitText(this.form.my_text_input,this.form.countdown1,30);" onKeyUp="limitText(this.form.my_text_input,this.form.countdown1,30);" onpaste="limitText(this.form.my_text_input,this.form.countdown1,30);" />

Javascript:

function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}

使用以下代码进行hi plz检查

我希望它能帮助

<html>
<form>
<input readonly type="text" name="countdown1" size="5" value="30" />
<input type="text" id="my_text_input" name="my_text_input" onfocus="limitText(this.form.my_text_input,this.form.countdown1,30);" onKeyDown="limitText(this.form.my_text_input,this.form.countdown1,30);" onKeyUp="limitText(this.form.my_text_input,this.form.countdown1,30);" onpaste="limitText(this.form.my_text_input,this.form.countdown1,30);" onChange="limitText(this.form.my_text_input,this.form.countdown1,30);" oninput="limitText(this.form.my_text_input,this.form.countdown1,30);"/>
</form>
<script>
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
</script>
</html>

这是一把正在工作的小提琴。

oninput:当用户在字段中写入内容时,执行JavaScript。

<form>
        <input readonly type="text" name="countdown1" size="5" value="30" />
        <input onfocus="limitText(this.form.my_text_input,this.form.countdown1,30);" onKeyDown="limitText(this.form.my_text_input,this.form.countdown1,30);" onKeyUp="limitText(this.form.my_text_input,this.form.countdown1,30);" onpaste="limitText(this.form.my_text_input,this.form.countdown1,30);"
    oninput="limitText(this.form.my_text_input,this.form.countdown1,30);" type="text" id="my_text_input" name="my_text_input" /></input>
    </form>
  • 函数limitText(limitField,limitCount,limitNum

limitField.value.length为零。它是粘贴之前值的值。

所以它永远小于limitNum。