2011-10-14 86 views
0

我使用下面的示例代碼創建了一個虛擬鍵盤。使用ASCII代碼的虛擬鍵盤

<script type="text/javascript"> 
function vkb(vap){ 
document.forms["virtual"]["text"].value += vap; 
} 
</script> 
<form name="virtual"> 
<input type="text" name="text"/> 
<input type="button" onclick="vkb('a')" value="a" style="border:none;"/> 
</form> 

此代碼無法接受', and \符號。然後我修改我的代碼如下方式

<script type="text/javascript"> 
    function vkb(vap){ 
    document.forms["virtual"]["text"].value += vap; 
    } 
    function vkb1(){ 
    document.forms["virtual"]["text"].value += "'"; 
    } 
    </script> 
    <form name="virtual"> 
    <input type="text" name="text"/> 
    <input type="button" onclick="vkb('a')" value="a" style="border:none;"/> 
    <input type="button" onclick="vkb1()" value="'" style="border:none;"/> 
    </form> 

現在終於我有問題,只有\我無法用我的虛擬鍵盤添加此行程。任何人都可以幫助我如何將\添加到文本框?否則,請向我提供使用asci值添加\的語法。

回答

0

我不知道你已經包括足夠的細節來回答你的問題。請記住,'\'字符在javascript中被用作轉義字符。這意味着您有時需要將其翻倍,有時甚至更多取決於您通過的解釋級別:

嘗試'\\'以獲得代碼中的斜槓或'\\\\'得到兩個斜線,這會通過一個斜線將另一個斜線向下。

+0

很好的答案!這對我有效。謝謝! –

2

太長,沒讀過:-)

試試這個:

<script type="text/javascript"> 
    function vkb(vap) 
    { 
     document.forms["virtual"]["text"].value += vap.value; 
    } 
</script> 
<form name="virtual"> 
    <input type="text" name="text"/> 
    <input type="button" onclick="vkb(this)" value="a" style="border:none;"/> 
    <input type="button" onclick="vkb(this)" value="\" style="border:none;"/> 
    <input type="button" onclick="vkb(this)" value="'" style="border:none;"/> 
    <input type="button" onclick="vkb(this)" value='"' style="border:none;"/> 
</form> 

的好處是,你不必寫兩次關鍵:-)信

你的問題是,有些字符有時需要轉義(例如,在JavaScript中的\,它用於做像\n這樣的事情意味着新行,所以有一個\你需要第二個反斜槓,lik Ë\\

嘗試運行它,例如這裏http://jsfiddle.net/T9Ptd/1/http://jsbin.com/uhakaq/3/edit