2

我在 html 文件中有 2 个输入字段,text1 和 text2。然后我复制一个长字符串并将其粘贴到 text1 中。我希望将字符串自动拆分为 text1 和 text2。所以字符串中必须有一个分隔符,例如 TAB (ASCII 9)。我已经尝试了很多次,但没有运气。在我的实验中,有一个按钮调用javascript函数如下:

<script>
function Chr(AsciiNum)
{
return String.fromCharCode(AsciiNum)

}

function test()
{ 
  c = "ABC"+Chr(9)+"DEF";
  document.getElementById("text1").value=c;
}

</script>

<input type="button" value="Paste it" onClick="test()">

我想要的是用 ABC 填充的 text1 和用“DEF”填充的 text2

谢谢你的帮助......

4

2 回答 2

3

拆分很简单:

function test(pastedText) { 
  var parts = pastedText.split(Chr(9));

  document.getElementById("text1").value = parts[0];
  document.getElementById("text2").value =
                                        (parts[1] === undefined ? "" : parts[1]);
}

棘手的部分,实际上是粘贴,检查下面的完整代码。

在此处查看代码的在线演示

Text1: <input type="text" id="text1"><br />
Text2: <input type="text" id="text2"><br />
<br />
<div>Sample string (copy the red text and paste it on Text1):</div>
<div style="color:red">ABC  DEF</div>

<script>
    function Chr(AsciiNum) {
      return String.fromCharCode(AsciiNum)
    }

    function test(pastedText) { 
      var parts = pastedText.split(Chr(9));

      document.getElementById("text1").value = parts[0];
      document.getElementById("text2").value = (parts[1] === undefined ?
                                                              "" : parts[1]);
    }

    /** HANDLING PASTE EVENT
     *  Credits to: http://stackoverflow.com/a/6035265/1850609 */
    function handlePaste(e) { 
      var pastedText = undefined;
      if (window.clipboardData && window.clipboardData.getData) { // IE
        pastedText = window.clipboardData.getData('Text');
      } else if (e.clipboardData && e.clipboardData.getData) {
        pastedText = e.clipboardData.getData('text/plain');
      }
      test(pastedText); // Process and handle text...
      return false; // Prevent the default handler from running.
    };
    document.getElementById("text1").onpaste = handlePaste;
</script>

我还建议您将test()函数重命名为对您更有意义的名称。

于 2013-08-03T05:38:11.200 回答
1

你为什么不这样做:

 c = "ABC "+Chr(9);
 document.getElementById("text1").value=c;
 document.getElementById("text2").value= "DEF";

这应该在里面test()

希望这可以帮助。

于 2013-08-03T05:19:25.927 回答