onblur 功能在 IE11 中停止工作
onblur functionality stops working in IE11
我有一个简单的函数来检查字段是否为数字,并且它以“000”开头。
这是使用 "onblur" 检查的,以向用户提供即时(大概)反馈。
我的代码:
function IsNumeric(input)
{
return (input - 0) == input && (''+input).trim().length > 0;
}
function checkNumber(field) {
if (!IsNumeric(field.value)) {
seterrorlabel("That's not a number");
toggleButton('SubmitButton', true);
} else if (!(field.value.substring(0, 3) == "000")) {
seterrorlabel("All numbers must begin 000. One 0 for external. Two 0's for an international number.");
toggleButton('SubmitButton', true);
} else {
toggleButton('SubmitButton', false);
seterrorlabel("");
}
}
function toggleButton(button,disableit) {
var input = document.getElementById(button);
input.disabled = disableit;
}
function seterrorlabel(message) {
var thelabel = document.getElementById('numbererror');
thelabel.innerHTML = message;
}
问题是在 Internet Explorer 11 中,onblur 函数似乎只能工作一次。我可以输入诸如“001234”之类的数字并收到预期的错误,但在更正错误并输入有效的“0001234”后,标签并未清除。
同样,如果我添加字母以使其成为非数字,则标签不会更新。
在 Chrome 中,这非常有效,并且每次我希望 onblue 触发时它都会更新。
有什么想法吗?
只是想确认当您输入“001234”并点击按钮时,当再次聚焦到文本框时您的按钮是否启用
这在 Internet Explorer 中已通过对 IsNumeric 使用不同的函数得到修复 - 前一个函数导致了问题,尽管在将函数定义更改为全局范围之前它们不会显示控制台。
我有一个简单的函数来检查字段是否为数字,并且它以“000”开头。 这是使用 "onblur" 检查的,以向用户提供即时(大概)反馈。
我的代码:
function IsNumeric(input)
{
return (input - 0) == input && (''+input).trim().length > 0;
}
function checkNumber(field) {
if (!IsNumeric(field.value)) {
seterrorlabel("That's not a number");
toggleButton('SubmitButton', true);
} else if (!(field.value.substring(0, 3) == "000")) {
seterrorlabel("All numbers must begin 000. One 0 for external. Two 0's for an international number.");
toggleButton('SubmitButton', true);
} else {
toggleButton('SubmitButton', false);
seterrorlabel("");
}
}
function toggleButton(button,disableit) {
var input = document.getElementById(button);
input.disabled = disableit;
}
function seterrorlabel(message) {
var thelabel = document.getElementById('numbererror');
thelabel.innerHTML = message;
}
问题是在 Internet Explorer 11 中,onblur 函数似乎只能工作一次。我可以输入诸如“001234”之类的数字并收到预期的错误,但在更正错误并输入有效的“0001234”后,标签并未清除。 同样,如果我添加字母以使其成为非数字,则标签不会更新。 在 Chrome 中,这非常有效,并且每次我希望 onblue 触发时它都会更新。
有什么想法吗?
只是想确认当您输入“001234”并点击按钮时,当再次聚焦到文本框时您的按钮是否启用
这在 Internet Explorer 中已通过对 IsNumeric 使用不同的函数得到修复 - 前一个函数导致了问题,尽管在将函数定义更改为全局范围之前它们不会显示控制台。