Javascript 使用preventDefault()后覆盖输入字段

Javascript 使用preventDefault()后覆盖输入字段,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我使用了以下代码 $('#id1').keypress(function(e){ if ($('#mail_mobNumber').val().length > 9) { e.preventDefault(); }); 所以,如果我输入10个数字,我就不能再输入任何数字了,这就是目标。 但是,另一方面,在我输入10位数字后,如果我使用Control+A选择整个字段,并尝试输入一些内容,而不是用我输入的内容替换文本,则什么也不会发生。 我知道这是由于上述代码的影响,但无论如何都有办法做到这

我使用了以下代码

$('#id1').keypress(function(e){
if ($('#mail_mobNumber').val().length > 9) {
e.preventDefault();
});
所以,如果我输入10个数字,我就不能再输入任何数字了,这就是目标。 但是,另一方面,在我输入10位数字后,如果我使用Control+A选择整个字段,并尝试输入一些内容,而不是用我输入的内容替换文本,则什么也不会发生。 我知道这是由于上述代码的影响,但无论如何都有办法做到这一点,即允许我在按下Control+A后覆盖输入。

您只需在输入标记中使用maxlength属性即可

您只需在输入标记中使用maxlength属性即可


对不起,我以前应该提到这件事。输入取决于其他因素。例如,某个国家/地区的电话号码具有一定数量的数字,因此这阻止我们直接将maxlength放入html标记中。如果要更改输入的最大长度,只需执行$'input'。attr'maxlength',newLength;好的,这很有帮助,谢谢。但我使用了preventDefault来限制的不仅仅是长度,所以一般来说,是否有任何方法可以覆盖它?对不起,我应该在前面提到这一点。输入取决于其他因素。例如,某个国家/地区的电话号码具有一定数量的数字,因此这阻止我们直接将maxlength放入html标记中。如果要更改输入的最大长度,只需执行$'input'。attr'maxlength',newLength;好的,这很有帮助,谢谢。但我使用了preventDefault来限制的不仅仅是长度,所以一般来说,是否有任何方法可以覆盖它?