【问题标题】:Select options based on another option selected根据选择的另一个选项选择选项
【发布时间】:2021-06-29 17:04:03
【问题描述】:

当我从上面的列表中选择特定选项时,我正在尝试选择一个选项。任何帮助如何实现这一目标?

前端打印

主要思想是,当我选择 Field_Support 时,从 StardardTemplateID 中选择选项“94”

我的实际尝试:

$(document).ready(function () {
    setTimeout(function () {
        const Action = Core.Config.Get("Action");
        const SupportedActions = ["AgentTicketNote"];

        if ($.inArray(Action, SupportedActions) !== -1) {
            if (Action === "AgentTicketNote") {
                $('#DynamicField_QueueNote').on('change', function () {
                    const Option = $(this).val();

                    if (Option === '- Move -')
                        $('#Subject').val('');
                    else if (Option === 'Field_Support')
                        $('#Subject').val('Nota para Field');
                    else if (Option === 'Field_Support')
                        $("#StandardTemplateID").html("<option value='94'>dados_para_field</option>");
                    else if (Option === 'Helpdesk')
                        $('#Subject').val('Nota para Helpdesk');
                    else if (Option === 'Sistemas_Windows')
                        $('#Subject').val('Nota para Sistemas');
                    else if (Option === 'Networking')
                        $('#Subject').val('Nota para Networking');
                });
            }
        }
    })
});

【问题讨论】:

    标签: javascript jquery otrs


    【解决方案1】:

    这是一种方法。将值关联作为数据属性烘焙到选择选项元素中。然后在 change 事件中引用它。

    $(document).ready(function() {
      $('select#DynamicField_QueueNote').change(function() {
        $('select#StandardTemplateID').val($(this).find('option:selected').data('link'))
        $('#StandardTemplateID_Search').val($('select#StandardTemplateID').find('option:selected').text());
        $('#Subject').val($(this).find('option:selected').data('subject'))
      })
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <select class="DynamicFieldText Modernize" id="DynamicField_QueueNote" name="DynamicField_QueueNote" size="1">
      <option value="">-</option>
      <option value="- Move -" selected="selected">- Move -</option>
      <option value="Field_Support" data-link='94' data-subject='Nota para Field'>Field_Support</option>
      <option value="Helpdesk" data-link='' data-subject='Nota para Helpdesk'>Helpdesk</option>
      <option value="Sistemas_Windows" data-link='' data-subject='Nota para Sistemas'>Sistemas_Windows</option>
    </select>
    <hr>
    <label>Subject</label>
    <input type="text" id="Subject" name="Subject" value="" class="W75pc Validate  Validate_Required" aria-required="true">
    
    <hr>
    <label for="StandardTemplateID">Text Template:</label>
    <div class="Field">
      <div class="InputField_Container" tabindex="-1">
        <div class="InputField_InputContainer"><input id="StandardTemplateID_Search" class="InputField_Search ExpandToBottom" type="text" role="search" autocomplete="off" aria-label="Text Template:" style="width: 273.333px;" aria-expanded="true"></div>
      </div>
      <select class="Modernize" id="StandardTemplateID" name="StandardTemplateID" style="display: none;">
        <option value="">-</option>
        <option value="71">1ª_Tentativa_Contacto</option>
        <option value="72">2ª_Tentativa_Contacto</option>
        <option value="73">3ª_Tentativa_Contacto</option>
        <option value="80">Acesso_VPN_atribuido</option>
        <option value="94">dados_para_field</option>
      </select>
      <p class="FieldExplanation">Setting a template will overwrite any text or attachment.</p>
    </div>
    
    
    
    
    <!--
    
    <select id='select1'>
      <option> Choose...</option>
      <option value='option1' data-link='100'> Option 1 (link to 100)</option>
      <option value='option2' data-link='133'> Option 2 (link to 133)</option>
      <option value='option3' data-link='94'> Option 3 (link to 94)</option>
      <option value='option4' data-link='120'> Option 4 (link to 120)</option>
    </select>
    
    
    
    <select id='select2'>
      <option></option>
      <option value='94'>Template 94</option>
      <option value='100'>Template 100</option>
      <option value='120'>Template 120</option>
      <option value='133'>Template 133</option>
    </select> -->

    【讨论】:

    • 如何在我的实际代码中实现它?
    • 您可以在问题中发布您的 2 选择菜单 HTML 吗?我会在我的 sn-p 中使用它们
    • 这篇文章和那个stackoverflow.com/questions/68016854/…相关
    • 好的,选了一个 - 你能分享模板选择菜单中的 html 吗?
    • @firewallcj - codepen.io/john-tyner/pen/PomPVNV -- 如果您觉得这有助于回答您的问题,请考虑接受它作为解决方案,谢谢
    【解决方案2】:

    您可以创建一个条件,在更改上检查选择的值 em> 然后设置 input 的 value 如果 select 的 value等于 目标值。

    使用 jQuery:

    $(document).ready(function() {
      $('#StandardTemplate').change(function() {
        if ($(this).val() === '94') {
          $('#text_template').val($('option[value="94"]').text())
        }
      })
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div id="parent">
      <select class="Modernize" id="StandardTemplate" name="StandardTemplate">
        <option value>-</option>
        <option value="71">1_Tentative_Contacto</option>
        <option value="72">2_Tentative_Contacto</option>
        <option value="73">3_Tentative_Contacto</option>
        <option value="80">Accesso_VPN_atibuido</option>
        <option value="94">dadios_para_field</option>
      </select>
    
      <label for="text_template">Text Template: <input name="text_template" id="text_template"></label>
    </div>

    使用香草 JS:

    const sel = document.getElementById('StandardTemplate')
    const input = document.getElementById('text_template')
    
    sel.addEventListener('change', e => {
      if(e.target.value === '94'){
        document.getElementById('text_template').value = document.querySelector('option[value="94"]').textContent
      }
    })
    <div id="parent">
      <select class="Modernize" id="StandardTemplate" name="StandardTemplate">
        <option value>-</option>
        <option value="71">1_Tentative_Contacto</option>
        <option value="72">2_Tentative_Contacto</option>
        <option value="73">3_Tentative_Contacto</option>
        <option value="80">Accesso_VPN_atibuido</option>
        <option value="94">dadios_para_field</option>
      </select>
    
      <label for="text_template">Text Template: <input name="text_template" id="text_template"></label>
    </div>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-12
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 2018-10-27
      相关资源
      最近更新 更多