如何将用户的输入值放入JS数组?

如何解决如何将用户的输入值放入JS数组?

| 我为用户提供了将自己的值输入6个输入字段的功能,其中一些或全部可能留为空白。我已经有一个填充有默认值的数组。如何将用户的值放入该数组中,以便对其进行计算? 用户可以使用提供的值或输入自己的值。提供的值部分工作正常。我现在为用户添加了添加自己的值的功能(HTML的下部)。
        <table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\">
            <tr>
                <td class=\"alignright\">
                    <form id=\"form2\">
                        <select class=\"displayLength\" name=\"ratio\" size=\"6\">
                            <option value=\'\'>Choose:</option>
                            <option value=\'sc10_4x4\'>SC10 4x4: 58,60,62,93</option> 
                            <option value=\'sc10\'>SC10: 75,78,81,84,87</option> 
                            <option value=\'sc8\'>SC8: 50,52,54</option> 
                            <option value=\'b44\'>B44: 72,75,84</option> 
                            <option value=\'b4t4\'>B4,T4: 72,87</option> 
                            <option value=\'gt2\'>GT2: 54,55,56</option> 
                        </select>
                </td></tr>
//这部分是新的:
                <tr><td>
                Alternate spur values:<br><br>
                <input class=\"display\" type=\"number\" size=\"14\" value=\"\" name=\"spur1\">&nbsp;
                <input class=\"display\" type=\"number\" size=\"14\" value=\"\" name=\"spur2\">&nbsp;
                <input class=\"display\" type=\"number\" size=\"14\" value=\"\" name=\"spur3\"><br><br>
                <input class=\"display\" type=\"number\" size=\"14\" value=\"\" name=\"spur4\">&nbsp;
                <input class=\"display\" type=\"number\" size=\"14\" value=\"\" name=\"spur5\">&nbsp;
                <input class=\"display\" type=\"number\" size=\"14\" value=\"\" name=\"spur6\">
                </td></tr>
            <tr>
                <td class=\"alignright\">
                    <input id=\"buttonNewRatios\" class=\"buttPress2\" type=\"button\" value=\"Alternates\"><br><br>
                        <textarea name=\"moreRatios\" cols=\"42\" rows=\"8\"></textarea> 
                </td></tr></form></table>
这是我遇到问题的Javascript部分。我不知道如何将用户值合并到交换机中,以便其余代码可以运行这些值。我通过JSHint.com运行了代码,并通过了。但是,没有结果显示。
    function gearSpurs(ratio) {
    var form = document.getElementById(\'formGearRatio\');
    var spur1 = form.elements.spur1.value,spur2 = form.elements.spur2.value,spur3 = form.elements.spur3.value,spur4 = form.elements.spur4.value,spur5 = form.elements.spur5.value,spur6 = form.elements.spur6.value;

        var spurs = [];

        switch (ratio) {
            case \'sc10_4x4\':
            spurs = [\'58\',\'60\',\'62\',\'93\'];
            break;
            case \'sc10\':
            spurs = [\'75\',\'78\',\'81\',\'84\',\'87\'];
            break;
            case \'sc8\':
            spurs = [\'50\',\'52\',\'54\'];
            break;
            case \'b44\':
            spurs = [\'72\',\'75\',\'84\'];
            break;
            case \'b4t4\':
            spurs = [\'72\',\'87\'];
            break;
            case \'gt2\':
            spurs = [\'54\',\'55\',\'56\'];
            break;
            default:
            spurs = [spur1,spur2,spur3,spur4,spur5,spur6];
            break;
        }
        return spurs;
    }
如何使spur1 ... 6正确合并到switch语句中? (此代码已在iPhone和Android环境中使用。)与其他功能相去甚远。)     

解决方法

        您可以在switch语句之前添加它们,如下所示:
spurs = [spur1,spur2,spur3,spur4,spur5,spur6];
然后在您的切换案例中更改语句以使用将添加到数组末尾的push函数:
spurs.push([\'58\',\'60\',\'62\',\'93\']);
另外,您可以不使用开关,并使用push这样在switch语句后添加6个值:
spurs.push([spur1,spur6]);
    ,        编辑:根据您接受的答案,您现在似乎想返回一个包含2个数组的数组。一种带有预定义的比率,另一种带有用户定义的马刺。 如果正确,函数将变得更加简单:
var ratios = {
    sc10_4x4: [\'58\',\'93\'],sc10:     [\'75\',\'78\',\'81\',\'84\',\'87\'],sc8:      [\'50\',\'52\',\'54\'],b44:      [\'72\',\'75\',\'84\'],b4t4:     [\'72\',gt2:      [\'54\',\'55\',\'56\']
};

function gearSpurs(ratio) {

    var form = document.getElementById(\'formGearRatio\'),spur1 = form.elements.spur1.value,spur2 = form.elements.spur2.value,spur3 = form.elements.spur3.value,spur4 = form.elements.spur4.value,spur5 = form.elements.spur5.value,spur6 = form.elements.spur6.value;

    return [ [spur1,spur6],ratios[ratio] ];

}
您的表单标签不平衡。只需将整个
<table>
和ѭ8包起来即可。 (您不能以一个
<td>
开头一个表格,而不能以另一个one结尾。)
<form id=\"form2\">
    <table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\">
        <tr>...</tr>

        <tr>...</tr>
        <tr>...</tr>
    </table>
</form>
我没有看到ID为
formGearRatio
的任何元素。 您可以重新编写如下代码来简化代码:
var ratios = {
    sc10_4x4: [\'58\',sc10: [\'75\',sc8: [\'50\',b44: [\'72\',b4t4: [\'72\',gt2: [\'54\',\'56\']
};

function gearSpurs(ratio) {

    if (ratios[ratio]) {
        return ratios[ratio];
    } else {
        var form = document.getElementById(\'formGearRatio\'),spur6 = form.elements.spur6.value;
        return [spur1,spur6];
    }
}
    ,        我唯一发现您的代码有问题的地方是,您正在尝试查找一个名为formGearRatios的表单,但该表单的实际名称为form2。如果更改该行,其余的将在我的测试中起作用(如果用户未选择任何内容,它将使用备用输入中的值)。 作为注释,我还必须以某种方式进行编辑,以调用您的函数并检索ratio的值,因此,假设您的完整代码已正确执行此操作,则唯一的问题就是表单ID。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-