使用定义的模式生成多个动态 ID 的函数

2024-02-09

我正在尝试创建一个函数来生成具有定义模式的多个动态 ID,我该怎么做?

跟进:Vue.js:如何使用定义的模式生成多个动态 ID https://stackoverflow.com/q/49776146/8770366

Details:

我正在创建一个动态的学校测试应用程序。单击“添加问题”按钮时,会出现一个 生成带有 4 个输入字段和 4 个单选按钮的 div。每个输入和单选按钮都需要有一个 ID。 到目前为止,该函数生成了一个值,我希望可以将其用作 ID。每个单选按钮都有一个 名称,这使得只能选择其所属组中的一个选项。每一个按钮 单击“添加问题”按钮(这是一个单选按钮),这个特定的“名称”用于计算按钮的点击次数。借助计数器,“问题”输入字段和“选项”输入字段的动态 ID (连接到单选按钮)以此模式生成:

Example

测试标题-问题-选项

JavaScriptQ1   (Question)
JavaScriptQ1O1 (Option)
JavaScriptQ1O2  
JavaScriptQ1O3
JavaScriptQ1O4

由于有一个div是在测试启动时生成的,而ID只是通过按钮点击生成的 div 将无法获取它的 ID。上例中的 ID 中似乎只有一个问题,而实际上有两个问题!

我目前没有使用 saveTest(),它将用于将测试保存到 mySQL 数据库中,但它可以用来解决这个问题!

1.我希望生成一个额外的“ID 组”,这样每个输入字段都会获得一个 ID,但我该怎么做呢?

2.当这个问题解决后,我如何为单选按钮生成唯一的 ID?

3.那么我该如何使用生成的值作为 ID。如何将它们“附加”到其输入字段和单选按钮?

4还有其他更好的方法来解决这个问题吗? ID 必须遵循一定的模式,因为它们将被保存在 数据库,然后用于纠正测试。

我知道这是一个相当复杂的问题,但我已尽力解释清楚。

我建议你看看jsfiddle https://jsfiddle.net/DTcHh/61567/反而!单击“添加问题”,您将看到它是如何工作的。

var name=1;
$("body").on('click', '#radioAddQuestion', function () {
    var singleQuestionModule = "singleQuestionModule";
    var question = $(".module:first").clone()
        .find("input:text").val("").end();

    var question_label = $(".question-label:first").clone();
    $(question).find(':radio').prop('checked', false);
    $(question_label).insertBefore(".options-label:last");
    $(question).insertBefore(".options-label");
    $(question).find(':radio').attr('name', "n" + name);
// Here is where the ID value is currently generated:
    name++;

    let questionId = theTitle + "Q" + name;
    console.log(questionId);

    for (a = 1; a <= 4; a++) {
        let optionId = theTitle + "Q" + name + "O" + a;
        console.log(optionId);
    }
    console.log(name)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>

<div id="singleQuestionModule">
    <form class="form-group">
        <div class="input-group input-group">
            <label id="wQuestionLabel" class="form-control-label" style="width: 540px;" for="wQuestion">Question:</label>

        </div>
        <!-- The Question Inputfield that needs ID-->
        <div class="input-group input-group">
            <input type="text" class="form-control" aria-label="" id="wQuestion" style="width: 540px;">
            </div>

        <div class="input-group input-group">
            <label id="questionOptions" class="form-control-label" style="width: 540px;" for="wQuestion">Enter avaible options:</label>
        </div>

        <!-- The radio buttons and option input fields that need ID's-->

        <div class="input-group input-group">
            <span class="input-group-addon">
                        <input type="radio" name= "q" id="option1" aria-label="">
                      </span>
            <input type="text" class="form-control" aria-label="" style="width: 540px;">
        </div>

        <div class="input-group input-group">
            <span class="input-group-addon">
                        <input type="radio" name="q" id="option4" aria-label="">
                      </span>
            <input type="text" class="form-control" aria-label="" style="width: 540px;">
        </div>
        <!-- The Add and Save Test Buttons-->
        <span class="options-label"></span>
        <br>
        <div class="form-group row">
            <div class="btn-group" data-toggle="buttons">
                <label class="btn btn-success" id="radioAddQuestion">
                    <input type="radio" @click="counter += 1" name="options" autocomplete="off">Add Question</label>

                <label class="btn btn-success">
                    <input type="radio" name="options" id="radioSaveTest" value="saveTest()" autocomplete="off">Save Test </label>
            </div>
        </div>

我改变了剧本。看看那个。它将为您使用过的所有控件生成动态ID。

var name=1;
    var theTitle="online";

    $("body").on('click', '#radioAddQuestion', function () {
        name++;     
        $(".dynamicform").append(createQuestion(name));
        
    });


     $(".dynamicform").append(createQuestion(name));
    function createQuestion(name){
    	var dynamic=`<span class="module">
                        <legend class="col-form-legend col-sm-10"></legend>
                        <div class="input-group input-group">
                            <label id="wQuestionLabel" class="form-control-label" style="width: 540px;" for="wQuestion">Question:</label>

                        </div>
                        <div class="form-group row">
                            <div class="input-group input-group">
                             <!-- The Question Inputfield that needs ID-->
                            
                                <input type="text" class="form-control" aria-label="" id="${theTitle + "Q" + name}" style="width: 540px;">
                            </div>
                        </div>
                        <div class="form-group row">
                            <div class="input-group input-group">
                                <label id="questionOptions" class="form-control-label" style="width: 540px;"
                                       for="wQuestion">Enter
                                    avaible options:</label>
                            </div>
                        </div>
                         <!-- The radiobuttons and option inputfields that needs ID's-->

                        <div class="form-group row">
                            <div class="input-group input-group">
                      <span class="input-group-addon">
                        <input type="radio" name="${theTitle +"rg"+name}" id="${theTitle + "Q" + name + "O" + "1"}" aria-label="">
                      </span>
                                <input type="text" id="${theTitle + "Q" + name + "input" + "1"}" class="form-control" aria-label="" style="width: 540px;">
                            </div>
                        </div>

                        <div class="form-group row">
                            <div class="input-group input-group">
                      <span class="input-group-addon">
                        <input type="radio" name="${theTitle +"rg"+name}" id="${theTitle + "Q" + name + "O" + "2"}" aria-label="">
                      </span>
                                <input type="text" id="${theTitle + "Q" + name + "input" + "2"}" class="form-control" aria-label="" style="width: 540px;">
                            </div>
                        </div>

                        <div class="form-group row">
                            <div class="input-group input-group">
                      <span class="input-group-addon">
                        <input type="radio" name="${theTitle +"rg"+name}" id="${theTitle + "Q" + name + "O" + "3"}" aria-label="">
                      </span>
                                <input type="text" id="${theTitle + "Q" + name + "input" + "3"}" class="form-control" aria-label="" style="width: 540px;">
                            </div>
                        </div>
                        <div class="form-group row">
                            <div class="input-group input-group">
                      <span class="input-group-addon">
                        <input type="radio" name="${theTitle +"rg"+name}" id="${theTitle + "Q" + name + "O" + "4"}" aria-label="">
                      </span>
                                <input type="text" id="${theTitle + "Q" + name + "input" + "4"}" class="form-control" aria-label="" style="width: 540px;">
                            </div>
                        </div>
                    </span>
                    `;
               return dynamic;     

    }
#singleQuestionModule {
  margin-left: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<div id="singleQuestionModule">
    <form class="form-group">
        <div class="d-flex justify-content-center">
            <fieldset class=" form-group row">
                <div class="dynamicform">
                  <!--Dynamic form comes here-->
                </div>
                <span class="options-label"></span>
                <br>
                <div class="form-group row">
                    <div class="btn-group" data-toggle="buttons">
                        <label class="btn btn-success" id="radioAddQuestion">
                            <input type="radio" @click="counter += 1" name="options" autocomplete="off">Add Question</label>

                        <label class="btn btn-success">
                            <input type="radio" name="options" id="radioSaveTest" value="saveTest()" autocomplete="off">Save
                            Test </label>
                    </div>
                </div>
            </fieldset>
        </div>
    </form>
</div>

杰斯小提琴:https://jsfiddle.net/d9tfk1u6/ https://jsfiddle.net/d9tfk1u6/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用定义的模式生成多个动态 ID 的函数 的相关文章

  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • W3C 验证器:“握手警报:unrecognized_name”

    我正在尝试验证我的网站W3C Nu Html 检查器 https validator w3 org nu doc https 3A 2F 2Fwww healthdrop in 2F但我遇到了以下错误 不知道为什么 IO 错误 握手警报 u
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • 单击关闭按钮后不显示 Google 一键登录 UI

    我正在尝试按照本指南使新的谷歌一键登录工作 https developers google com identity one tap web https developers google com identity one tap web
  • 如何通过jquery更改元素的类名

    div class bestAnswerControl div class IsBestAnswer div div 我想补充一下 bestanswer some attribute 我想更换class IsBestAnswer div 到
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • 单击列表时使用 bootstrap Dropdown 防止下拉菜单消失

    我正在使用使用引导下拉菜单 http twitter github com bootstrap javascript html dropdowns生成下拉菜单 我想防止点击菜单时菜单消失 我已经实现了以下代码 但它不起作用 知道如何修复它吗

随机推荐

  • 实体框架工具不适用于 UWP 应用程序 C#

    启动项目 EFGetStartedUWP 是一个通用 Windows 平台应用程序 此版本的 Entity Framework Core 包管理器控制台工具不支持此类项目 有关将 EF Core Tools 与 UWP 项目结合使用的详细信
  • 我可以列表初始化仅移动类型的向量吗?

    如果我通过 GCC 4 7 快照传递以下代码 它会尝试复制unique ptrs 进入向量 include
  • 求解热方程

    我求解金属棒的热方程 一端保持在 100 C 另一端保持在 0 C 如下 import numpy as np import matplotlib pyplot as plt dt 0 0005 dy 0 0005 k 10 4 y max
  • '.' 之前应有主要表达式代币

    我已经为此奋斗了一段时间并环顾四周 但我不确定我做错了什么 错误 错误 标记之前应有主表达式 addElement 方法内的大部分代码都会弹出 涉及 BinaryNode variable 但我完全不知道在这里要做什么 include
  • 在delphi中传递不同枚举类型的混合

    我需要编写一个可以传递不同枚举选择的过程 type TEnumOne eOneFlagOne eOneFlagTwo TEnumTwo eTwoFlagOne eTwoFlagTwo 该方法应该采用不同的枚举 Process eOneFla
  • 如何将 p5.js 画布放入 html div 中

    我正在尝试将 p5 js 添加到网页中某一部分的背景 我是 javascript 新手 不知道如何将这两个部分绑定在一起 您需要在设置中添加代码 确保 html 中的脚本标记中也包含该函数 请注意 您不要在 parent 中添加 var m
  • 使用 Lua 时 C++ 中的堆栈展开

    我最近偶然发现了这个 C Lua 错误 int function for lua lua State L std string s Trouble coming return luaL error L something went wron
  • 用于对所有行进行分页的 Cassandra CQL 方法

    我想以编程方式检查大型 cassandra 表中的所有行 并希望使用 CQL 我知道我可以使用 thrift 来做到这一点 使用 multiget 一次获取 10 000 左右 行 并将最后检索到的密钥传递给下一个 multiget 调用
  • 简单的拼写检查算法

    我的任务是为作业创建一个简单的拼写检查器 但几乎没有提供任何指导 所以想知道是否有人可以帮助我 我并不是在找人为我做作业 但任何关于算法的指导或帮助都会很棒 如果我所问的内容不在该网站的指导范围内 那么我很抱歉 我会去其他地方寻找 该项目加
  • Web项目中的Java文件路径

    我需要从类访问我的 Web 项目中的资源文件 问题是我的开发环境的路径和项目部署时的路径不一样 例如 如果我想在开发时访问一些 css 文件 我可以这样做 File file new File src main webapp resourc
  • 生成最小可执行文件的编程语言? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 非常简单的mysql查询不使用索引

    我的 mySQL 表的排序不使用索引 我不知道为什么 我有 CREATE TABLE IF NOT EXISTS test a int 11 NOT NULL b int 11 NOT NULL KEY kk a ENGINE MyISAM
  • C中获取字符串的指针算术

    我想获取字符数组的元素 但根本没有成功 问题是我只获取第一个和最后一个元素 仅此而已 我的代码是 void getcharacters char cad int l int i l strlen cad for i cad 0 i lt c
  • 使用 boost::asio::use_future 增强 asio:async_read()

    打电话时asio async read 使用 future 有没有办法获取当 a 时传输的字节数boost asio error eof出现异常 似乎在很多情况下 即使对等方断开连接 人们也希望传输数据 例如 namespace ba bo
  • 具有自定义背景图像的 Google 地图

    我希望找到一种方法来创建带有自定义背景图像的谷歌地图实例 我看过一些示例 下面链接 但没有找到任何有关如何执行此操作的文档 我希望有人能帮助我解决这个问题 Thanks 简单的例子 http www obsidianportal com c
  • 恢复/重置默认 Xcode 字体配色方案?

    所以我尝试单击 T 却不小心单击了 XCode 字体首选项中的 颜色 框 我已经处于 默认 状态 现在我正在尝试恢复它 我发现这是不可能的 我被其他程序中存在的 重置默认值 按钮宠坏了 除了重装还有什么办法吗 是的 我偏爱白色背景 随着时间
  • 什么时候适合使用C作为面向对象语言?

    关于如何使用 C 来模拟面向对象的概念 有很多优秀的答案 仅举几例 C 具有抽象数据类型的双链表 https stackoverflow com questions 3274472 c double linked list with abs
  • 设置animationDidStopSelector:在UIView的动画委托上

    我认为在过去一年半的 iPhone 开发经验中我一直在做这个错误 我需要一些知识渊博的澄清 您可能知道也可能不知道 使用 UIView 属性可以很容易地设置动画beginAnimations forContext 方法 并用一个包装它com
  • 如何使用正则表达式来匹配不包含多个特定单词之一的字符串?

    如何使用正则表达式来避免匹配包含多个特定单词之一的字符串 例如 字符串不应包含以下单词test nor sample sample test 我的正则表达式在某些情况下会失败 1 this is a test case 2 this is
  • 使用定义的模式生成多个动态 ID 的函数

    我正在尝试创建一个函数来生成具有定义模式的多个动态 ID 我该怎么做 跟进 Vue js 如何使用定义的模式生成多个动态 ID https stackoverflow com q 49776146 8770366 Details 我正在创建