如何解决在dojo中创建条形图,并通过文本框从用户那里获取系列值
|| 我希望开发一个应用程序,它允许用户通过输入(如下面的文本框)设置系列的值以及轴的标签,这是我尝试过的代码,<html>
<head>
<title>Chart Demo</title>
<style type=\"text/css\">
@import \"../dijit/themes/tundra/tundra.css\";
@import \"../dojo/resources/dojo.css\"
</style>
<SCRIPT type=text/javascript src=\"dojo/dojo.js\" djConfig=\"isDebug: true\"></SCRIPT>
<script type=\"text/javascript\">
//dojo.require(\"dojo.event.*\");
dojo.require(\"dojo.parser\");
dojo.require(\"dijit.layout.SplitContainer\");
dojo.require(\"dijit.layout.ContentPane\");
dojo.require(\"dijit.form.NumberSpinner\");
dojo.require(\"dojox.charting.Chart2D\");
//dojo.require(\"dojo.widget.*\");
//dojo.require(\"dojo.widget.Button\");
makeCharts = function() {
var val1=dijit.byid(\'val1\').get(\'value\');
var val2=dijit.byid(\'val2\').get(\'value\');
var val3=dijit.byid(\'val3\').get(\'value\');
var val4=dijit.byid(\'val4\').get(\'value\');
var chart1 = new dojox.charting.Chart2D(\"simplechart\");
chart1.addPlot(\"default\",{type: \"Columns\",gap: 5});
chart1.addAxis(\"x\",{
labels: [
{value: 0,text: \"one\"},{value: 1,text: \"two\"},{value: 2,text: \"three\"},{value: 3,text: \"four\"}]}
);
chart1.addAxis(\"y\",{vertical: true});
chart1.addSeries(\"Series 1\",[val1,val2,val3,val4]);
chart1.render();
};
</script>
</head>
<body class=\"tundra\">
<div dojoType=\"dijit.layout.SplitContainer\" orientation=\"horizontal\"
sizerWidth=\"10\" activeSizing=\"true\"
style=\"border: 1px solid #FF00FF; width: 600px; height: 205px;\">
<div dojoType=\"dijit.layout.ContentPane\" sizeMin=\"10\" sizeShare=\"10\">
<p><b>Enter the required details for chart</b></p>
<form method=\"post\" id=\"dataForm\" name=\"dataForm>
<table>
<tr>
<td><label>X-axis</label></td>
<td><input type=\"text\" trim=\"true\" dojoType=\"dijit.form.TextBox\"
value=\"\" name=\"x\" id=\"tx\"/></td>
</tr>
<tr>
<td><label>y-axis</label></td>
<td><input type=\"text\" trim=\"true\" dojoType=\"dijit.form.TextBox\"
value=\"\" name=\"y\" id=\"ty\"/></td>
</tr>
<tr>
<td><label>value1</label></td>
<td><input dojoType=\"dijit.form.NumberSpinner\"
value=\"0\"
smallDelta=\"1\"
constraints=\"{min:0,max:1000,places:0}\"
maxlength=\"20\"
id=\"val1\"></td>
</tr>
<tr>
<td><label>value2</label></td>
<td><input dojoType=\"dijit.form.NumberSpinner\"
value=\"0\"
smallDelta=\"1\"
constraints=\"{min:0,places:0}\"
maxlength=\"20\"
id=\"val2\"></td>
</tr>
<tr>
<td><label>value3</label></td>
<td><input dojoType=\"dijit.form.NumberSpinner\"
value=\"0\"
smallDelta=\"1\"
constraints=\"{min:0,places:0}\"
maxlength=\"20\"
id=\"val3\"></td>
</tr>
<tr>
<td><label>value4</label></td>
<td><input dojoType=\"dijit.form.NumberSpinner\"
value=\"0\"
smallDelta=\"1\"
constraints=\"{min:0,places:0}\"
maxlength=\"20\"
id=\"val4\"></td>
</tr>
<tr>
<td colspan=\"2\">
<input name=\"Submit\" type=\"button\" id=\"Submit\" onclick=\"makeCharts();\" value=\"Submit\" />
</td>
</tr>
</table>
</form>
</div>
<div dojoType=\"dijit.layout.ContentPane\" sizeMin=\"10\" sizeShare=\"10\" id=simplechart>
</div>
</div>
</body>
</html>
但是这段代码产生了一些错误,我无法调试...。
请帮忙
网页错误详细信息
用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4 .0E; MS-RTC LM 8)
时间戳记:2011年4月14日,星期四,UTC
消息:对象不支持此属性或方法
行:25
字符:2
代码:0
URI:file:/// D:/dojo%20new/dojo-release-1.6.0-src/trial1.html
解决方法
由于您没有正确设置问题的格式,并且几乎忽略了HTML的所有相关部分,因此很难说出来,但是我注意到了以下几点:
在这里,您在末尾缺少引号:
<form method=\"post\" id=\"dataForm\" name=\"dataForm>
Dijit的byId
方法使用大写i(dijit.byId(...)
),因此您需要更改这四行。
var val1=dijit.byid(\'val1\').get(\'value\');
var val2=dijit.byid(\'val2\').get(\'value\');
var val3=dijit.byid(\'val3\').get(\'value\');
var val4=dijit.byid(\'val4\').get(\'value\');
解决此问题,看看是否可行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。