我有一個Javascript問題,我無法找到答案。希望您能夠幫助我。動態函數調用只有在提供alert()時纔有效
我已經這個元件稱爲「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();
}
}
airNumber字段也在窗體上,並且值不會更改。 – Arduin 2014-09-04 08:02:53