jquery keypress从json中替换字符或字符串

时间:2011-08-29 17:03:33

标签: jquery replace keypress

全局Json对象,它通过ajax post调用php初始化,并返回值 喜欢以下(

$arr = array('h' => 'html', 'l' => 'li', 'p' => 'pre', 'd' =>'dom', 'e' => 'element'); 
echo json_encode($arr);

我可以在jQuery中获取json对象的值。

有一个映射了ketpress事件的文本框。是否有可能用户在文本框中键入字母 h 而不是h它应该替换为值 json_obj ['h'] HTML 即可。其中json_obj是保存json对象的变量。

3 个答案:

答案 0 :(得分:1)

这里有很多问题:final example

json_encode php数组:echo json_encode($arr);

jquery ajax

 var lookUpObject;
 $.getJSON({
     'something.php',
      success: function (data) {
         lookUpObject = data;
      }
 });

然后keypress

var lookUpObject = {     h:'html',     p:'php' };

$(document).ready(function() {
    $('input').keypress(function (event) {
        var result = lookUpObject [String.fromCharCode(event.which)];

        if (result) {
            var val = $(this).val();
            $(this).val(val + result);
            event.preventDefault();
        }
    })
});

答案 1 :(得分:0)

这将捕获键盘事件并使用按下的键将文本框的文本替换为数组中的内容。请注意,虽然我没有进行任何验证或错误检查(例如,如果按键存在于数组中),您可能应该这样做。

$('#inputID').keyup(function(e) {
  var key = String.fromCharCode(e.which);
  $(this).val($arr[key]);
});

答案 2 :(得分:0)

首先检查,项目用户按下的是in array。如果是,那么prevent default动作并放置该值。