You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript+jQuery正确从表单传递数组中的变量

问题根因

从表单输入框获取的值为字符串类型,而非你预期的数字数组:
你调用$('#my_keys').val()拿到的是完整字符串"79, 129, 183, 128, 66",直接将这个字符串放入数组传入Uint8Array构造函数时,JS引擎会尝试把整个字符串转换为0~255范围内的无符号8位整数,转换失败就会返回0,所以最终得到只有一个0元素的Uint8Array。
另外你第一段正常运行的代码注释里的Uint8Array(64)为笔误,5个元素的数组生成的Uint8Array长度为5。

解决方案

先把获取到的字符串处理为数字数组,再传给Uint8Array即可,处理步骤:

  1. 用split(',')方法把字符串按逗号分割为单个数值对应的字符串数组
  2. 遍历每个元素,去除两端空格后转换为Number类型
  3. 将处理好的数字数组作为参数传入Uint8Array构造函数

修改后的完整代码如下:

<script>
$(function () {
    $('#save').click(function () {
        // 获取输入框字符串
        var inputStr = $('#my_keys').val();
        // 处理为数字数组
        var key_values = inputStr.split(',').map(val => Number(val.trim()));
        // 生成Uint8Array
        const secret_keys = new Uint8Array(key_values);
        console.log(secret_keys);
        // 输出:Uint8Array(5) [ 79, 129, 183, 128, 66 ]
    });
});
</script>
<input type="text" id="my_keys" value="79, 129, 183, 128, 66">
<input type="button" id="save" value="save" />

内容的提问来源于stack exchange,提问作者Nancy Moore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:48:00