微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

选择选项时添加输入文本 - OTRS

如何解决选择选项时添加输入文本 - OTRS

如果我从此列表中选择特定选项,我将尝试用特定文本填充主题

前端打印

enter image description here

主题 html 部分:

<input type="text" id="Subject" name="Subject" value="" class="W75pc Validate  Validate_required" aria-required="true">

选项列表部分:

enter image description here

已经尝试制作但不起作用的代码

 $(document).ready(function() {   
   setTimeout(function() {
     const Action = Core.Config.Get("Action");
     const SupportedActions = ["AgentTicketNote"];
     if ($.inArray(Action,SupportedActions) !== -1) {
       if (Action === "AgentTicketNote") {      
        var dyno = document.getElementById("DynamicField_QueueNote_Search");
        dyno.addEventListener("change",changeByOption(dyno.value),false);
       }
     }
     function changeByOption(option) {
       var sub = document.getElementById("Subject");
          if (option === '- Move -') sub.value = '';      
          else if (option === 'Field_Support') sub.value = 'Nota para field';     
          else if (option === 'Helpdesk') sub.value = 'Nota para helpdesk';       
          else if (option === 'Sistemas_Windows') sub.value = 'Nota para sistemas';
     }  
   })
 });

HTML 代码部分:

                        <div class="Row Row_DynamicField_QueueNote">
                        <label id="LabelDynamicField_QueueNote" for="DynamicField_QueueNote">
To queue:
</label>

                            <div class="Field">
                            <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">Field_Support</option>
  <option value="Helpdesk">Helpdesk</option>
  <option value="Sistemas_Windows">Sistemas_Windows</option>
</select>

输入字段代码

<div class="InputField_Selection" style="left: 5px; display: block;"><div class="Text">Helpdesk</div><div class="Remove"><a href="#" title="Remove selection" role="button" tabindex="-1" aria-label="Remove selection: Helpdesk">x</a></div></div>

解决方法

如果您以正确的方式添加 JavaScript,则无需等待 DOM 加载。另一种方法是 this add-on,它也会在 DOM 完全加载后加载 JavaScript。

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 === 'Helpdesk') $('#Subject').val('Nota para helpdesk');   
            else if (Option === 'Sistemas_Windows') $('#Subject').val('Nota para sistemas');
        });
    }
}
,

我没有你的 Core.Config,所以我硬编码 Action。 当您在 changeByOption 中传递 addEventListener 时,您可以从 event.target.value

中获取选项值

示例如下

"use strict";
$(document).ready(function () {
  // const Action = Core.Config.Get("Action");
  const Action = "AgentTicketNote";
  const SupportedActions = ["AgentTicketNote"];
  if ($.inArray(Action,SupportedActions) !== -1) {
    if (Action === "AgentTicketNote") {
      const dyno = document.getElementById("DynamicField_QueueNote");
      dyno.addEventListener("change",changeByOption,false);
    }
  }
});

function changeByOption(event) {
  const option = event.target.value;
  console.log(option);
  var sub = document.getElementById("Subject");
  if (option === "- Move -") sub.value = "";
  else if (option === "Field_Support") sub.value = "Nota para field";
  else if (option === "Helpdesk") sub.value = "Nota para helpdesk";
  else if (option === "Sistemas_Windows") sub.value = "Nota para sistemas";
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <title>Document</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  </head>
  <body>
    <div class="Row Row_DynamicField_QueueNote">
      <label id="LabelDynamicField_QueueNote" for="DynamicField_QueueNote">
        To queue:
      </label>

      <div class="Field">
        <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">Field_Support</option>
          <option value="Helpdesk">Helpdesk</option>
          <option value="Sistemas_Windows">Sistemas_Windows</option>
        </select>
      </div>
    </div>
    <input id="Subject" type="text" />
  </body>
  <script src="test.js"></script>
</html>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?