2013-11-21 44 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