奇怪的是,第一行运行得很好,但是第三行给了我TypeError: dojo.byId(...).attr is not a function。有一些隐藏的字段保存了所有作为<input type="hidden" id="_hidden_studentname_{somestudentid}" value="aStudentName">的学生对,这里{somestudentid}仅将其表示为学生id变量。这样做的目的是尝试通过学生id获取学生姓名。
dojo.connect(dijit.byId('_studentId_id'), 'onChange', function (val) {
var studentId=dijit.byId("_studentId_id").attr("value"); // line 1
var id="_hidden_studentname_"+studentId;
var studentName=dojo.byId(id).attr("value"); // line 3
dojo.byId("_student_text").attr("value", studentName);
});所以dojo不允许在dojo.byId()中放入变量?我非常确定具有该id的<input type="hidden">确实存在……
发布于 2013-04-18 01:21:29
注意您是如何在第1行使用dijit.byId的,但是在第3行使用了dojo.byId。前者返回一个小部件(它有一个attr函数),而dojo.byId返回一个没有attr方法的DOM元素。
DOM元素可以直接操作属性,因此可以更新代码以使用something.value = 'some other value';。
dojo.connect(dijit.byId('_studentId_id'), 'onChange', function (val) {
var studentId=dijit.byId("_studentId_id").attr("value"); // line 1
var id="_hidden_studentname_"+studentId;
var studentName=dojo.byId(id).value; // line 3
dojo.byId("_student_text").value =studentName;
});https://stackoverflow.com/questions/16065697
复制相似问题