【问题标题】:Set selected values in select "box" from values in input field从输入字段中的值中设置选择“框”中的选定值
【发布时间】:2015-07-07 07:10:56
【问题描述】:

我希望这是一个相当简单的问题,但我无法找到任何解决方案。我有一个 cms 系统,我通过常规表单上传不同的东西。比较基础。当我上传了一个我不能编辑的项目时也是如此。这一切都在起作用。当一个人添加一个项目时,您需要选择该项目分配给的一个或多个业务伙伴。这是通过选择(多个)字段完成的,并且值存储在输入字段中。现在,当我去编辑项目时,值将显示在输入字段中(用逗号分隔)。

如果这些值在输入字段中,我想隐藏此输入字段并将选择(多个)字段中的值设置为选中。

希望我简单的 JSFiddle 可以澄清一下。

http://jsfiddle.net/ovwoaqmo/

<form>
<table class="webform" border="0" cellpadding="2" cellspacing="0">
    <tbody>
        <tr>
            <td>
                <label for="CAT_Custom_5">Partner</label>
                <br>
                <select id="CAT_Custom_5" class="cat_dropdown" multiple="" style="width: 200px;" name="CAT_Custom_5">
                    <option value="test1">test1</option>
                    <option value="test2">test2</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>
                <label for="CAT_Custom_5">Partner</label>
                <br />
                <input maxlength="4000" name="CAT_Custom_5" id="CAT_Custom_5" class="cat_textbox" value="test1,test2" type="text">
            </td>
        </tr>
        <tr>
            <td>
                <input class="cat_button" value="Submit" id="catcustomcontentbutton" type="submit">
            </td>
        </tr>
    </tbody>
</table>

我知道这两个字段具有相同的 id,这基本上是因为它们是相同的字段,也许这会给我带来问题,或者这可能是一件好事,我不太确定。

非常感谢任何提示或帮助:)

更新/编辑:

我认为这可以解决我的问题: http://jsfiddle.net/4EVBL/16/ 我只需要它在输入字段中用逗号分隔值。 对此有什么帮助吗? :)

【问题讨论】:

  • 在一个 HTML 文档中不能有两个具有相同 id 的元素。无论如何,您需要输入字段做什么?具有multiple 属性集的选择元素已经完全能够同时保存多个选定选项;如果您想同时查看它们,请同时使用size 属性。
  • 谢谢CBroe。我知道ID问题,我在那里测试。问题是这些值在多选框中不可见,但它们在输入字段中。我不需要输入字段,但有没有办法让选择“框”显示已经选择的值? :)
  • “如果你想同时查看它们,那么也可以使用size 属性” ...
  • 您能否向我解释一下这个或文档/演示的链接。抱歉新手问题:)

标签: jquery html select input


【解决方案1】:

你好,你可以试试这个

$(document).ready(function(){
    
    $('#CAT_Custom_5').on('change', function(){
      var some = $(this).val();
        
       
        
        $('#CAT_Custom_6').val(some);
    
    });
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<form>
    <table class="webform" border="0" cellpadding="2" cellspacing="0">
        <tbody>
            <tr>
                <td>
                    <label for="CAT_Custom_5">Partner</label>
                    <br>
                    <select id="CAT_Custom_5" class="cat_dropdown" multiple="" style="width: 200px;" name="CAT_Custom_5">
                        <option value="test1">test1</option>
                        <option value="test2">test2</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>
                    <label for="CAT_Custom_6">Partner</label>
                    <br />
                    <input maxlength="4000" name="CAT_Custom_6" id="CAT_Custom_6" class="cat_textbox" value="" type="text">
                </td>
            </tr>
            <tr>
                <td>
                    <input class="cat_button" value="Submit" id="catcustomcontentbutton" type="submit">
                </td>
            </tr>
        </tbody>
    </table>
</form>

【讨论】:

  • 这也有效,但问题是加载时添加项目时选择的值在输入字段中不可见,因为这些值在“自定义 5”中,所以我无法将其更改为“自定义 6” :) 希望这是有道理的 :)
  • @user2239933 你不能在一个网页的多个标签中使用一个ID。
  • 我知道这一点。这就是为什么我问我是否可以让选择框显示来自 custom_5 的值并删除输入字段。问题是这些值必须存在,但由于某种原因,选择字段不会显示这些值。所以我可以没有输入字段。对我来说,另一个解决方案可能是让选择框具有另一个 ID,然后使用它来“选择”输入字段中的值(自定义 5),可以这样做,所以我只使用选择“框”将值传递给输入字段,所以我确定这些值拼写正确等? :)
【解决方案2】:
var array = $('.cat_textbox').val().split(",");
$("#CAT_Custom_5").val(array);

Demo

【讨论】:

  • 这确实有效,但现在我遇到了另一个问题。我可以多次添加值。如果我可以让选择框显示 custom_5 中的值,我不需要从输入字段中获取相同值的值。我知道这是一团糟 :) 抱歉 :)
猜你喜欢
  • 2018-09-12
  • 2019-12-16
  • 1970-01-01
  • 2011-01-27
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多