2013-11-21 41 views
0

我想添加额外的按钮到表单来扩展键盘输入到一个textarea。按钮字符包括美国原住民语言的unicode组合。按钮更改通过按钮编辑textarea输入ID

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

Bascially我很难搞清楚如何改变inputtext来改变按钮id。所有的按钮都在一个

任何帮助将不胜感激。

牛逼igʷicid谢谢

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

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

回答

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只被放置在一个位置,那将会非常好。

如果您创建一个特殊股利,使之包含所有的按钮,没有别的,你可以做到以下几点:

document.getElementById('lut-btn').onclick = function (e) { 
    var dest = e.target; 
    document.myform.outputtext.value += dest.value; 
}; 

这一点的代码片段试图找到DIV包含了所有的按钮和记录点击事件处理器。这是可行的,因为这个div内的任何元素都会触发一个click事件,这个事件将由注册函数处理。尽管您必须考虑到存在更好的注册事件处理程序的方法,您应该探索它们。

这绝不是一个完整的列表,但它应该是一个合适的起点。

+0

完美!我使用了第一部分代码并修改了按钮以添加(this)。我可以告诉问题是什么,但不是正确的解决方案。 t̕igʷicidtidsyaʔyaʔ。谢谢,我的朋友。 – user2141419