调试该代码时,在if语句的“ else”部分收到此错误。我对Java脚本不是很熟悉,所以任何帮助都会很棒:)
function doDDItemSelected() {
var oSrc = event.srcElement
var oCrit
var oCritB
var lstListItems
var iCritPK = oSrc.getAttribute('CRIT_PK')
oSrc.style.visibility = "hidden";
oSrc.style.display = "none";
if (oSrc.id.indexOf("lstCritB") != -1) {
oCrit = $get('CritB' + iCritPK.toString());
oCrit.value = oSrc.options[oSrc.selectedIndex].text;
} else {
oCrit = $get('Crit' + iCritPK.toString()); // error is in this line
oCrit.value = oSrc.options[oSrc.selectedIndex].text;
if (oCrit.onchange) {
oCrit.onchange();
}
// Set the value of the end of range field if there is one
try {
oCritB = $get('CritB' + iCritPK.toString());
if (oCritB.value == "") {
if (oSrc.options[oSrc.selectedIndex].value != "(ALL)") {
oCritB.value = oSrc.options[oSrc.selectedIndex].text;
}
}
} catch (e) {
return;
}
}
}
编辑:我应该补充一点,此功能用于Web浏览器的下拉列表框中。问题是我无法在下拉框中选择项目,而使所选项目显示在同一框中。此代码在IE11中有效,但在Google Chrome中不可用。
答案 0 :(得分:0)
嗨,尝试将事件作为参数传递
function doDDItemSelected(event) {
答案 1 :(得分:-1)
之所以这样做,是因为该变量是对方法getAttribute
的调用的结果,如果未设置该方法,则将返回null。 null
不包含方法'toString',因此正确引发了错误。
也许考虑做一个else if
事例,以检查该值是否明确不为空。
...
}
else if ( iCritPK !== null ) {
...