基于下拉选择值填充输入文本字段,初始时应有2个输入字段。

huangapple go评论94阅读模式
英文:

Based on dropdown select value populate input text fields and initially it should have 2 input fields

问题

以下是您提供的内容的翻译:

问题是初始时应显示2个输入文本字段,根据下拉选择添加或删除输入字段,下拉菜单从2开始,到6结束。

我的代码:

  1. function addElements(selectElement) {
  2. var textboxNumbers = selectElement.value;
  3. var dsets = document.getElementById("dsets");
  4. var dmenu = document.getElementById("textboxes");
  5. dsets.innerHTML = ""; //清空"dsets"元素
  6. for (var i = 0; i < textboxNumbers; i++) {
  7. var yourTextboxes = document.createElement("INPUT");
  8. yourTextboxes.setAttribute("type", "textbox" + "<br>");
  9. yourTextboxes.setAttribute("id", "dsid" + (i + 1));
  10. yourTextboxes.setAttribute("placeholder", "DataSet Name " + (i + 1));
  11. yourTextboxes.setAttribute("style", "height: 25px; width: 250px;");
  12. dsets.appendChild(yourTextboxes);
  13. }
  14. document.getElementById("textboxes").style.display = '';
  15. }
  1. <td><select class="displaymenu" onclick="addElements(this)" id="textboxes">
  2. <option>Please Select</option>
  3. <option>2</option>
  4. <option>3</option>
  5. <option>4</option>
  6. <option>5</option>
  7. <option>6</option>
  8. </select></td>
  9. </tr>
  10. </table>

预期结果:

基于下拉选择值填充输入文本字段,初始时应有2个输入字段。

任何帮助将不胜感激...

英文:

Problem is initially it should show 2 input text fields and based on drop down select it should add or remove input fields.
and dropdown menu start with 2 till 6.

My Code:

  1. function addElements(selectElement) {
  2. var textboxNumbers = selectElement.value;
  3. var dsets = document.getElementById(&quot;dsets&quot;);
  4. var dmenu = document.getElementById(&quot;textboxes&quot;);
  5. dsets.innerHTML = &quot;&quot;; //Empty &quot;dsets&quot; element
  6. for (var i = 0; i &lt; textboxNumbers; i++) {
  7. var yourTextboxes = document.createElement(&quot;INPUT&quot;);
  8. yourTextboxes.setAttribute(&quot;type&quot;, &quot;textbox&quot;+&quot;&lt;br&gt;&quot;);
  9. yourTextboxes.setAttribute(&quot;id&quot;, &quot;dsid&quot;+(i+1));
  10. yourTextboxes.setAttribute(&quot;placeholder&quot;, &quot;DataSet Name &quot;+(i+1));
  11. yourTextboxes.setAttribute(&quot;style&quot;, &quot;height: 25px; width: 250px;&quot;);
  12. dsets.appendChild(yourTextboxes);
  13. }
  14. document.getElementById(&quot;textboxes&quot;).style.display = &#39;&#39;;
  15. }
  1. &lt;td&gt;&lt;select class=&quot;displaymenu&quot; onclick=&quot;addElements(this)&quot; id=&quot;textboxes&quot;&gt;
  2. &lt;option&gt;Please Select&lt;/option&gt;
  3. &lt;option&gt;2&lt;/option&gt;
  4. &lt;option&gt;3&lt;/option&gt;
  5. &lt;option&gt;4&lt;/option&gt;
  6. &lt;option&gt;5&lt;/option&gt;
  7. &lt;option&gt;6&lt;/option&gt;
  8. &lt;/select&gt;&lt;/td&gt;
  9. &lt;/tr&gt;
  10. &lt;/table&gt;

Expected:

基于下拉选择值填充输入文本字段,初始时应有2个输入字段。

Any Help will be much appreciated...

答案1

得分: 1

以下是翻译好的内容:

您可能没有添加 &lt;div id=&quot;dsets&quot;&gt;&lt;/div&gt; 以容纳要附加的输出。

还要为选择框使用 onchange 事件。我已经更改了它。

在选择框中添加 selected,它将选择默认选项,并在默认状态下触发选定的选项更改事件。

请尝试以下代码

  1. <!-- 开始片段: js 隐藏: false 控制台: true babel: false -->
  2. <!-- 语言: lang-js -->
  3. function addElements(selectElement) {
  4. var textboxNumbers = selectElement.value;
  5. var dsets = document.getElementById("dsets");
  6. var dmenu = document.getElementById("textboxes");
  7. dsets.innerHTML = ""; // 清空 "dsets" 元素
  8. for (var i = 0; i < textboxNumbers; i++) {
  9. var yourTextboxes = document.createElement("INPUT");
  10. var linebreak = document.createElement("br");
  11. yourTextboxes.setAttribute("type", "textbox" + "<br>");
  12. yourTextboxes.setAttribute("id", "dsid" + (i + 1));
  13. yourTextboxes.setAttribute("placeholder", "DataSet Name " + (i + 1));
  14. yourTextboxes.setAttribute("style", "height: 25px; width: 250px;");
  15. dsets.appendChild(yourTextboxes);
  16. dsets.appendChild(linebreak);
  17. }
  18. document.getElementById("textboxes").style.display = '';
  19. }
  20. var event = new Event('change');
  21. var element = document.querySelector(".displaymenu");
  22. element.dispatchEvent(event);
  23. <!-- 语言: lang-html -->
  24. <table>
  25. <td><select class="displaymenu" onchange="addElements(this)" id="textboxes">
  26. <option>Please Select</option>
  27. <option selected>2</option>
  28. <option>3</option>
  29. <option>4</option>
  30. <option>5</option>
  31. <option>6</option>
  32. </select></td>
  33. </table>
  34. <div id="dsets"></div>
  35. <!-- 结束片段 -->
  36. 希望这会有所帮助
  37. <details>
  38. <summary>英文:</summary>
  39. You may not added `&lt;div id=&quot;dsets&quot;&gt;&lt;/div&gt;` to hold the output to append.
  40. Also use `onchange` event for **select boxes**. I have changed it.
  41. Add `selected` to the select box, it will select the default option and trigged the selected options change event in default state.
  42. ### Try below Code
  43. &lt;!-- begin snippet: js hide: false console: true babel: false --&gt;
  44. &lt;!-- language: lang-js --&gt;
  45. function addElements(selectElement) {
  46. var textboxNumbers = selectElement.value;
  47. var dsets = document.getElementById(&quot;dsets&quot;);
  48. var dmenu = document.getElementById(&quot;textboxes&quot;);
  49. dsets.innerHTML = &quot;&quot;; //Empty &quot;dsets&quot; element
  50. for (var i = 0; i &lt; textboxNumbers; i++) {
  51. var yourTextboxes = document.createElement(&quot;INPUT&quot;);
  52. var linebreak = document.createElement(&quot;br&quot;);
  53. yourTextboxes.setAttribute(&quot;type&quot;, &quot;textbox&quot; + &quot;&lt;br&gt;&quot;);
  54. yourTextboxes.setAttribute(&quot;id&quot;, &quot;dsid&quot; + (i + 1));
  55. yourTextboxes.setAttribute(&quot;placeholder&quot;, &quot;DataSet Name &quot; + (i + 1));
  56. yourTextboxes.setAttribute(&quot;style&quot;, &quot;height: 25px; width: 250px;&quot;);
  57. dsets.appendChild(yourTextboxes);
  58. dsets.appendChild(linebreak);
  59. }
  60. document.getElementById(&quot;textboxes&quot;).style.display = &#39;&#39;;
  61. }
  62. var event = new Event(&#39;change&#39;);
  63. var element = document.querySelector(&quot;.displaymenu&quot;);
  64. element.dispatchEvent(event);
  65. &lt;!-- language: lang-html --&gt;
  66. &lt;table&gt;
  67. &lt;td&gt;&lt;select class=&quot;displaymenu&quot; onchange=&quot;addElements(this)&quot; id=&quot;textboxes&quot;&gt;
  68. &lt;option&gt;Please Select&lt;/option&gt;
  69. &lt;option selected&gt;2&lt;/option&gt;
  70. &lt;option&gt;3&lt;/option&gt;
  71. &lt;option&gt;4&lt;/option&gt;
  72. &lt;option&gt;5&lt;/option&gt;
  73. &lt;option&gt;6&lt;/option&gt;
  74. &lt;/select&gt;&lt;/td&gt;
  75. &lt;/tr&gt;
  76. &lt;/table&gt;
  77. &lt;div id=&quot;dsets&quot;&gt;&lt;/div&gt;
  78. &lt;!-- end snippet --&gt;
  79. Hope this will helps.
  80. </details>

huangapple
  • 本文由 发表于 2023年5月15日 14:25:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/76251372.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定