【问题标题】:How can i put an option value in a input text after clicking a button?单击按钮后如何在输入文本中输入选项值?
【发布时间】:2021-05-14 09:35:36
【问题描述】:

我不熟悉 javascript 和 jQuery,我在问你。 我想选择产品的代码,一旦我从select 下拉列表中选择了它,我点击按钮,它应该在我创建的输入框文本中添加值,这样我也可以积累更多产品的更多代码。 请记住,单击按钮后,不再无限期添加相同的值,但可以选择另一个代码并将其添加到输入文本中已存在的代码旁边。

我不知道使用<input type = "submit"> 标记而不是button 标记来发送或在这种情况下将选定的文本从select 传输到文本表单是否更实用。

如果你能用 javascript 或 jQuery 为我完成这个动作,你会救我的命 :)

<select class="select" id="select-code">
    <option value="">Select a code</option>
    <option value="value1">Code 1</option>
    <option value="value2">Code 2</option>
    <option value="value3">Code 3</option>
    <option value="value4">Code 4</option>
</select>
<button id="code-btn">submit to form</button>
<input name="my-quote" type="text" placeholder="code1,code2...">

【问题讨论】:

  • 我建议你研究一个“药丸”插件并使用它。这是一个可以帮助您入门的方法:select2.org/getting-started/…
  • 没想到有这个外部资源,比还在abc为我写一些JS/jQ代码要求要低。我正在使用 wordpress,发现它是一个与联系表单 7 兼容的插件。现在我将使用它作为替代解决方案。

标签: javascript jquery select button input


【解决方案1】:

function myFunction() {

  var newText = document.getElementById('select-code').value
  var input = document.getElementById('my-quote')

  if (input.value == '') input.value = newText
  else input.value = input.value + ', ' + newText
  
}
<select class="select" id="select-code" onchange='myFunction()'>
  <option value="">Select a code</option>
  <option value="Code 1">Code 1</option>
  <option value="Code 2">Code 2</option>
  <option value="Code 3">Code 3</option>
  <option value="Code 4">Code 4</option>
</select>
<button id="code-btn">submit to form</button>
<input id="my-quote" type="text" placeholder="code1,code2...">

【讨论】:

  • 嗨,我查看了您的代码,感谢您的回答,您的时间非常接近,但是一旦您按下按钮,它应该完全按照您的代码执行。我尝试将 onclick = "myFunction ()" 添加到按钮,但它返回“无法读取 null 的属性'值'”“。从选择中我立即删除了它。你能告诉我为什么它给我这个错误吗?跨度>
  • 您是否将 id my-quote 添加到输入标签中?如果这对您有用,请接受答案,如果没有,请提供有关您想要做什么的更多信息
【解决方案2】:

这其实很简单,可以作为初学者练习,所以我将简要介绍一下我将如何解决它:

  1. 注册按钮 onClick 事件
  2. 读取选定值
  3. 将其添加到占位符属性中

这样的东西(根本没有测试过)

//button click event
$("#code-btn").click(function (event) {
                //in element #select-code
var textToAdd = $('#select-code')
    //find element with pseudo selector :selected
    .find(":selected")
        //get its inner text
        .text();

//check if input already contains the text here, if not
if (!$("input").attr("placeholder").includes(textToAdd)) {

    //into input element
    $("input")
        //into attribute placehoder
        .attr("placeholder",
            //insert original text         //insert colon     //insert new text
            $("input").attr("placeholder") + ", " +           textToAdd)
    }
});

【讨论】:

  • 如果他们是一个完整的初学者并且它“非常简单”,那么您可能应该为他们提供一个有效的 sn-p 而不是一些他们将难以调试的未经测试的“类似这样的东西”如果它不工作 100%
  • 没错,因为我是n00b :) 在这个领域我将使用@dan 提出的解决方案
  • 我虽然你不应该在这里做任何人的功课,而是要为苦苦挣扎的学习者/学生指出实现目标的方向。请原谅我没有立即想到单元测试代码...
【解决方案3】:

这不是对您问题的直接回答,而是另一种解决方案。如果可能的话,我会考虑使用&lt;select multiple&gt;:带有“multiple”属性的选择标签。这是一个原生 HTML 功能,允许用户从列表中选择多个选项。我不知道您是如何提交表单数据的,但如果使用 &lt;form&gt; 标记,那么表单的数据将包含已选择的值。

Tutorial about select multiple

<label for="select-code">Select a code</label>
<select class="select" id="select-code" multiple>
    <option value="value1">Code 1</option>
    <option value="value2">Code 2</option>
    <option value="value3">Code 3</option>
    <option value="value4">Code 4</option>
</select>
<button id="code-btn">submit to form</button>
<input id='input' name="my-quote" type="text" placeholder="code1,code2...">

【讨论】:

    【解决方案4】:

    首先,你似乎是个完全的初学者。所以你应该学习DOM api来学习如何操作窗口。

    无论如何,这里有你想要的代码;

    document.getElementById('code-btn').onclick = () => {
    let e = document.getElementById('select-code');
    document.getElementById('input').value =  e.options[e.selectedIndex].text;
    }
    <select class="select" id="select-code">
        <option value="">Select a code</option>
        <option value="value1">Code 1</option>
        <option value="value2">Code 2</option>
        <option value="value3">Code 3</option>
        <option value="value4">Code 4</option>
    </select>
    <button id="code-btn">submit to form</button>
    <input id='input' name="my-quote" type="text" placeholder="code1,code2...">

    document.getElementById('code-btn') 获取 id 为“code-btn”的元素。由于那是一个按钮,我们可以使用onclick 属性,它将接受一个函数,当它被点击时,该函数将被调用。

    在该函数中,我只是获取输入字段并将其值设置为下拉列表中所选选项的文本。

    我认为这里的代码是自记录的。

    【讨论】:

    • 你好,你也来了基础知识,我必须找时间正确学习。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2018-09-20
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多