Javascript 通过getElementById检查输入长度无效

Javascript 通过getElementById检查输入长度无效,javascript,html,css,Javascript,Html,Css,函数校验长度(输入){ var元素=document.getElementById('t')。值; if(document.calculator.t.value.length==10){ 警报(“ivalid长度-仅限10个字符!”); } 如果(element.value.length>10){ 警报(“ivalid长度-仅限10个字符!”); } } •© 您正在检查onkeyup事件的长度,当您在框中键入时会触发该事件。因此,当你点击按钮时,它不是 解决此问

函数校验长度(输入){
var元素=document.getElementById('t')。值;
if(document.calculator.t.value.length==10){
警报(“ivalid长度-仅限10个字符!”);
}
如果(element.value.length>10){
警报(“ivalid长度-仅限10个字符!”);
}
}






•©


您正在检查
onkeyup
事件的长度,当您在框中键入时会触发该事件。因此,当你点击按钮时,它不是

解决此问题的一种方法是在
onchange
事件中检查此问题


更新:

calculator.answer.value += '0';
calculator.answer.onchange();
if ("createEvent" in document) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('change', false, true);
    calculator.answer.dispatchEvent(evt);
}
else
    calculator.answer.fireEvent('onchange');
此外,为了使该修复程序按预期工作,您应该手动触发
onchange
事件,因为更改
属性不会分派它

JS:

calculator.answer.value += '0';
calculator.answer.onchange();
if ("createEvent" in document) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('change', false, true);
    calculator.answer.dispatchEvent(evt);
}
else
    calculator.answer.fireEvent('onchange');
另一个更好的方法是:

JS:

calculator.answer.value += '0';
calculator.answer.onchange();
if ("createEvent" in document) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('change', false, true);
    calculator.answer.dispatchEvent(evt);
}
else
    calculator.answer.fireEvent('onchange');

随着处理程序变得越来越复杂,您可能更容易为按钮而不是内联命令创建通用处理程序。

您正在检查
onkeyup
事件的长度,当您在框中键入时会触发该事件。因此,当你点击按钮时,它不是

解决此问题的一种方法是在
onchange
事件中检查此问题


更新:

calculator.answer.value += '0';
calculator.answer.onchange();
if ("createEvent" in document) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('change', false, true);
    calculator.answer.dispatchEvent(evt);
}
else
    calculator.answer.fireEvent('onchange');
此外,为了使该修复程序按预期工作,您应该手动触发
onchange
事件,因为更改
属性不会分派它

JS:

calculator.answer.value += '0';
calculator.answer.onchange();
if ("createEvent" in document) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('change', false, true);
    calculator.answer.dispatchEvent(evt);
}
else
    calculator.answer.fireEvent('onchange');
另一个更好的方法是:

JS:

calculator.answer.value += '0';
calculator.answer.onchange();
if ("createEvent" in document) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('change', false, true);
    calculator.answer.dispatchEvent(evt);
}
else
    calculator.answer.fireEvent('onchange');

随着处理程序变得越来越复杂,您可能会更容易为按钮创建通用处理程序,而不是内联命令。

您说通过键盘输入的值会被检查,但通过按钮输入的值不会被检查。问题是,您要将函数绑定到事件
onkeyup
,该事件只有在按下键并在输入中释放后才会发生,您应该将函数绑定到事件
onchange

您说键盘输入的值正在被检查,但用按钮输入的值没有被检查。问题是你把函数绑定到事件<代码> OnKyPUP ,这只发生在键被按下并在输入中释放之后,你应该将你的函数绑定到事件<代码> OnChchange < /Calp>

改变<代码>值<代码>属性DOE不发送<代码>更改< /代码>事件。将更改。<代码>值>代码>属性DOE不发送<代码>更改< /代码>事件。将更新。