按钮ID通过textarea输入按钮更改

时间:2013-11-21 17:17:28

标签: javascript html5 web-applications cordova dreamweaver

我想在表单中添加其他按钮,以将键盘输入扩展为textarea。按钮字符包括美国本土语言的unicode组合。

var newtext = document.myform.inputtext.value;
document.myform.outputtext.value += newtext; 

基本上我很难弄清楚如何使用按钮ID更改inputtext。所有按钮都在

之内

非常感谢任何帮助。

̕ʷʷ谢谢

访问http://jsfiddle.net/dsienko/a2YmL/

最终目标是手机短信应用。我正在使用Dreamweaver和Phonegap。

1 个答案:

答案 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事件,该事件将由注册的函数处理。虽然你必须考虑到存在更好的注册事件处理程序的方法,你应该探索它们。

这绝不是一个完整的清单,但它应该是一个充分的起点。