我想在表单中添加其他按钮,以将键盘输入扩展为textarea。按钮字符包括美国本土语言的unicode组合。
var newtext = document.myform.inputtext.value;
document.myform.outputtext.value += newtext;
基本上我很难弄清楚如何使用按钮ID更改inputtext。所有按钮都在
之内
非常感谢任何帮助。
̕ʷʷ谢谢
访问http://jsfiddle.net/dsienko/a2YmL/
最终目标是手机短信应用。我正在使用Dreamweaver和Phonegap。
答案 0 :(得分:0)
如果我理解正确,您只想将正确的值附加到输入字段。
如果我的解释是正确的,你就会遇到问题,因为函数addText不知道点击了哪个按钮。
一个非常糟糕的解决方案是给它一个等于按钮值的参数。例如
<input type="button" id="c-wedge" onClick="addtext('č');" value="č" />
它会让你重复值,我们都知道复制很糟糕。
更好的解决方案是拥有一个功能,它将知道是谁调用它。这可以通过将关键字this传递给函数来实现。
<input type="button" id="c-wedge" onClick="addtext(this);" value="č" />
function addtext(that) {
var nexttest = that.value;
document.myform.outputtext.value += newtext;
}
这稍微好一些,因为只知道一个处理所有按钮的函数,但每个按钮都需要属性onClick,所以它可以变得更好。如果Javascript只放在一个位置,那真的很棒。
如果您创建一个特殊的div并使其包含所有按钮而不包含任何其他内容,则可以执行以下操作:
document.getElementById('lut-btn').onclick = function (e) {
var dest = e.target;
document.myform.outputtext.value += dest.value;
};
这个小代码片段试图找到包含所有按钮的div并注册一个click事件处理程序。这是有效的,因为此div内的任何元素都将触发click事件,该事件将由注册的函数处理。虽然你必须考虑到存在更好的注册事件处理程序的方法,你应该探索它们。
这绝不是一个完整的清单,但它应该是一个充分的起点。