2014-01-09 31 views
1

我想实现一个JavaScript代码,用户输入的皈依字符键代码
3-显示对应于上一个键码的阿拉伯语不同的字符
例如,如果用户按下“A”按钮,我将在输入文本字段中显示“ض”。 我试过这个代码,但它不工作:自动从AZERTY键盘键阿拉伯字符在JavaScript

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function myFunction(e) 
{ 
    var keyCode = (window.event) ? e.which : e.keyCode; 
    if (keyCode == 65) 
     document.getElementById("firstname").innerHTML="ض"; 
} 
</script> 
</head> 


<body> 
<FORM action="http://somesite.com/prog/adduser" method="post"> 
    <P> 
    <LABEL for="firstname">First name: </LABEL> 
       <INPUT type="text" id="firstname" onkeydown="myFunction()"><BR> 

    </P> 
</FORM> 

</body> 
</html> 

的代码块尝试只是一个字符,如果这是工作,我将能够实现对其余字符的算法。

任何有关这个主题的帮助将不胜感激!

+0

http://stackoverflow.com/a/4605347/96100的http:// stackoverflow.com/a/3580352/96100 –

+0

@TimDown谢谢你:)但我在IE8中需要这个,我注意到它们的Javascript实现与其他浏览器完全不同:) – mounaim

+0

这两个链接中的代码在IE 8中工作。也是IE 7和6.唯一的问题,你可以在IE <= 8中有换行符,这通常只适用于textareas而不是输入。 –

回答

2

你有几个问题:

  • 通过onkeydown属性设置为myFunction(),该功能被称为不带任何参数。无论如何,在脚本中执行事件绑定会更方便(这样您不必在HTML中进行脚本调试),但是这也允许您为event参数指定e参数。
  • 您正试图设置innerHTML,但它应该是value - <input> s没有innerHTML,因为它们是自闭的。
  • 您可能还需要return false顶部停止a被添加到值后ض

Demo here

window.onload = function(){ 
    document.getElementById("firstname").onkeydown = function myFunction(e){ 
     var keyCode = window.event ? window.event.keyCode : e.which; 
     if (keyCode == 65){ 
      this.value += "ض"; 
      return false; 
     } 
    } 
} 
+0

谢谢@Barney!但是这在Internet Explorer 8中不起作用,下面是错误的详细信息:网页错误详细信息用户代理:Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)Timestamp:Thu,2014年1月9日14:33:37 UTC消息:'document.getElementById(...) '是空或不是对象行:4 char:1代码:0 URI:file:/// C:/Documents%20and%20Settings/k.hinnach/Bureau/nice%20conversion.html – mounaim

+0

啊,这可能是因为脚本在输入可用之前执行。解决此问题的最快方法是在窗口加载后执行代码...我编辑了上面的代码... – Barney

+0

好了谢谢@Barney,nowit显示此错误:网页错误详情 用户代理:Mozilla/4.0(compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.3; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) 时间戳:星期四, 2014年1月9日16时03分59秒UTC 消息:“这是空值或不是对象 行:6 字符:9 代码:0 URI:文件:/// C:/文件%20于是% 20Settings /家庭$ /局/最新%20conversion。html – mounaim