【问题标题】:Copy one to another textbox and change letters将一个复制到另一个文本框并更改字母
【发布时间】:2012-09-20 15:49:04
【问题描述】:

我正在使用此脚本从一个文本框复制到另一个文本框。当我在方框 A 中写下将在方框 B 中复制的内容进行更改时,我不知道该怎么做。 exp。字母 A 是 001,字母 E 是 002,字母 V 是 008。我不在乎它是 php 还是 JavaScript。

感谢您的时间和帮助

<html>
<head>
<script type="text/javascript">
    function copy_data(val){
     var a = document.getElementById(val.id).value
     document.getElementById("copy_to").value=a
    }

    </script>
</head>
<body>
From:&nbsp;&nbsp;&nbsp; <input type="text" name ="a" id="copy_from" onkeyup="copy_data(this)"/><br>
To:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" name ="b" id="copy_to"/><br>
</body>
</html>

【问题讨论】:

  • Javascript 有一个replace 函数。除非您想对服务器进行 AJAX 调用以在每次按键时进行翻译,否则您不会使用 PHP 来执行此操作,这将是对您的服务器的大量不必要的调用。

标签: php javascript textbox copy


【解决方案1】:

Here 是一个使用您的代码的 javacript 替换函数的小示例,它可能正是您要寻找的。​​p>

刚刚改变:

document.getElementById("copy_to").value=a

到:

document.getElementById("copy_to").value=a
    .replace(/a/g, '001') // the letter/string, you code
    .replace(/b/g, '002') // ...

【讨论】:

  • 感谢这项工作,但如果我输入“ABVABV”,我会得到 001002003ABV
  • 已修复,只是将字符串更改为 RegExp 对象
【解决方案2】:

这样做的一种方法是使用 JavaScript 函数,使用对象将特定字符映射到要插入的特定代码(在这种情况下,字符 a 映射到 001,依此类推):

var keysToCodes = {
    'a': '001',
    'b': '002',
    'c': '003',
    'd': '004'
};

function transferAndAmend(source, target, e) {
    if (!source || !target) {
        return false;
    }
    else {
        var e = e || window.event,
            keynum = window.event ? e.keyCode : e.which,
            key = String.fromCharCode(keynum),
            char = keysToCodes[key] ? keysToCodes[key] : key;
        target.value += char;
    }
}

var source = document.getElementById('one'),
    target = document.getElementById('two');

source.onkeypress = function(e) {
    transferAndAmend(this, target, e);
};​

JS Fiddle demo.

这是在 Windows XP 上的 Chrome 21 和 IE 7 中经过测试的,并且似乎可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 2023-03-23
    • 2023-04-02
    相关资源
    最近更新 更多