所以我在这里要做的是将数据类型的输入形式的信息传递给javascript,然后用更新的变量数据重新绘制画布。
这是我到目前为止所得到的:
<!DOCTYPE HTML>
<html>
<head>
<script language = "JavaScript">
var canvas;
var context;
var _x = 0;
function draw(newx) {
context.rect(newx,100,100,100)
context.strokeStyle = "red"
context.stroke()
}
function sendVal(form) {
_x = form.xx.value;
context.clearRect(0,0,canvas.width,canvas.height);
draw(_x);
}
window.onload = function() {
canvas = document.getElementById("myCanvas");
context = canvas.getContext("2d");
context.rect(_x,100,100,100);
context.strokeStyle = "blue";
context.stroke();
};
</script>
</head>
<body>
<FORM NAME="SENDX" ACTION="" METHOD="GET">
Enter X: <INPUT TYPE="number" NAME="xx">
<INPUT TYPE="submit" VALUE="ENTER CO-ORDINATES" onClick="sendVal(this.form)">
</FORM>
<canvas id="myCanvas" width="500" height="500"></canvas>
</body>
</html>
正如您在上面所看到的,我已经尝试将canvas的上下文变量设置为public,以便我可以从javascript的另一部分访问其函数,但画布永远不会自行更新。我该如何解决?谢谢。
答案 0 :(得分:0)
我认为您的问题不在JavaScript中,而是HTML,“提交”类型的输入想要导致表单提交事件,您只需要一个onclick事件。尝试使用:
<input type="button" value="ENTER CO-ORDINATES" onclick="sendVal(this.form)">
使用JSFiddle:http://jsfiddle.net/nwellcome/mJyps/5/