我正在使用HTML5 Canvas制作某种名片制作器。 要获得自定义名称,地址等...我目前使用的提示框......HTML5 Canvas中的文本框值
现在我得到的是:
要定义变量
var name = prompt("Votre nom","")
var address = prompt("Votre adresse","")
var title = prompt("Votre titre","")
然后画在画布上:
img.onload = function(){
oCtx.drawImage(img,0,0);
oCtx.font = "normal 25px arial"; // different font
oCtx.textBaseline = "top"; // text baseline at the top
oCtx.fillStyle = "#00529e";
oCtx.fillText(address, 283, 138);
oCtx.font = "bold 45px arial"; // different font
oCtx.fillText(name, 283, 350);
oCtx.font = "normal 40px arial"; // different font
oCtx.fillText(title, 283, 410);
};
img.src="back.png";
它的工作很好,从PROMPT框中获取值。 但我想做一些更干净的,用户文本框来代替。
所以这个人只需要在Canvas旁边输入一个文本框,当他在文本框中输入时,它会自动更新“name”变量或“address”或“title”的内容, 。
我该如何做这项工作?
编辑
这里就是我想...但不工作:
<input type="text" id="testing"/>
我就打入这个文本框,然后将更新:
oCtx.fillText(document.getElementById('testing').value), 282, 138);
现在,它是:
oCtx.fillText(address, 282, 138);
感谢
EDIT 2
我想:
document.getElementById("testing").addEventListener("change", function() {
var val = document.getElementById("testing").value;
// now use val in your existing fillText code
});
“测试” 是我的文本框的ID ...... 我改变了对fillText方法:
oCtx.fillText(val, 282, 138);
但是当我输入文本框时没有任何事情发生......任何想法为什么?
最初使用的代码你尝试过什么? **提示:**您希望它在输入时更新,因此请尝试在TextBox上找到一个事件,您可以利用它来运行您在上面提供的功能。 – Widor
以及我已经尝试过: ...然后获取值:oCtx.fillText(document.getElementById('example_text')。value,283,350); .. 。但它不工作,没有任何反应 – larin555
@ user1388136 - 这是因为你需要一个事件来触发你的画布元素的更新。您可能需要onblur或onchange事件。 – j08691