我无法理解 Javascript 的工作原理...我想传递表单名称和提交按钮名称,以便该函数可以评估传递的值并启用或禁用提交按钮。
如果我明确使用名称,它就可以工作,但我希望它能够动态工作。不幸的是,我只是不明白如何正确使用这些参数。
现在第一个文档语句有效(使用了表单名称和按钮名称),为什么使用参数的第二个文档语句不起作用?我从警报中知道表单名称不正确并且不能按原样使用,但即使我明确命名表单但使用看起来正确的传递按钮名称,这也不起作用。
我知道这一定是 javascript 101,但我一次又一次地遇到这种情况,但我只是不明白是什么。有谁愿意给我解释一下吗?
<script type="text/javascript">
function aTest(formName,objName,val){
if (val<5){
document.aForm.aBtn.disabled=false;
alert(formName+" - "+objName);
}
else {
document.formName.objName.disabled=true;
}
}//end function aTest(formName,objName)
</script>
<form name="aForm">
<input name="testFld" type="text" onBlur="aTest(this.form,'aBtn',this.value)">
<input name="aBtn" type="submit" value='submit'></form>
感谢您的关注!
最佳答案
尝试:
document[formName][objName].disabled = true;
当您需要通过某个表达式的值而不是常量来访问对象的属性时,可以使用方括号运算符。计算括号内的表达式,然后将其值视为要查找的属性名称。
现在,确保“formName”确实是表单的名称可能是明智的:
if (document[formName] != null && document[formName][objName] != null) {
document[formName][objName].disabled = true;
}
或更通俗地说:
if (document[formName] && document[formName][objName]) {
document[formName][objName].disabled = true;
}
关于javascript - 将表单名称和表单对象名称传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806842/