我有一个Javascript问题,我无法找到答案。希望你能帮帮我。
我有一个名为'scanValue'的元素,它有一个onFocus和一个onBlur触发器:
<input name="scanValue" class="searchFormText" style="width: 220px; font-size: 22px;" onfocus="onFocusElement(this)" onblur="onBlurElement(this)" type="text" maxLength="20" value="510210006823414"/>
如果我跳出字段,则按预期调用onBlurElement()函数:
function onBlurElement(object) {
alert('onBlurElement: Start blur on ' + object.name + ' (old val = ' + prevObjectVal + ', new val = ' + object.value + ')');
if (object.value !== prevObjectVal) {
check(object);
var checkFcn = 'check' + object.name;
var fcnParms = [object.value];
var fcn = window[checkFcn];
alert('onBlurElement: check if ' + checkFcn + ' is a function: ' + (typeof fcn));
if (typeof fcn == 'function') {
alert('fcnParms length = ' + fcnParms.length + '. ToString= ' + fcnParms.toString());
alert('fcnParms[0] length = ' + fcnParms[0].length + '. ToString= ' + fcnParms.toString());
fcn.apply(fcn, fcnParms);
}
}
}
现在这个动态函数调用(fcn.apply())应该调用函数'checkscanValue(val)',但没有任何反应。当我向此函数添加alert()或者我启动IE标准开发人员工具时除外。换句话说,如果我跟踪或调试checkscanValue()函数一切正常,否则什么也不做。我尝试了几种不同的东西,但似乎没有任何效果。我怀疑这可能与使用方法帖子提交的表单有任何关系,但也许有人可以帮助我。
checkscanValue()函数的代码:
function checkscanValue(val) {
console.info('checkscanValue: start function');
document.forms[0].airNumber.value = 'test';
// Check if the scanned value is valid for submitting the form
if (val[0].length === 15) {
document.forms[0].submit();
}
}
答案 0 :(得分:0)
除了传递给checkscanvalue函数的“val”参数是用户输入的字符串或默认存在的字符串外,一切正常。
因此val [0]返回字符串的第一个字符,其长度不能为15,因此检查失败并且没有任何反应。
希望它有所帮助!答案 1 :(得分:0)
这似乎回答了我的问题:'console' is undefined error for Internet Explorer
我一直在使用console.info()函数,如果从未打开IE的控制台窗口,则该函数未定义。这导致功能停止。如果我用alert()替换它显然有效,如果我打开IE的控制台,则定义了console.info函数。