在MacOS下拉菜单中移动复选标记

时间:2018-11-26 01:50:27

标签: javascript html macos

我使用<select><option>标记创建了一个下拉列表,每次键入新输入时,程序都会创建一个带有value属性的新选项标记,以将其添加到现有选项中在下拉列表中。

但是,我的客户使用的是MacOS,他想将下拉列表中的复选标记移动到最近添加的选项。选中标记仅在您单击所选行时移动,但就我而言,我希望它也移动到最近添加/键入的数据。

以下是HTML代码:

<!-- Created select tag so user can access history of talk -->
<div style="top:60px;position:absolute;z-index:2" id="speechBox">
    <!-- The select tag acts like a drop down button, so it passes its value to the input box and not to itself -->
    <select id = 'combo-box' title = "Saved Talk" onchange="document.getElementById('userText').value=this.options[this.selectedIndex].text; document.getElementById('idValue').value=this.options[this.selectedIndex].value;">
  </select>
    <span class = "dropdown" name = "Saved Talk"></span>
    <input id ="userText" name="userText" type="text" onfocus="this.select()" ></input>
    <input name="idValue" id="idValue" type="hidden">
    <button id="speakText" class="toolbutton" title="Speak"></button>
  <hr>
</div>

和JS:

hiddenArray(); // Access speakArray

// Function containing the speakArray, which saves the recent talk array
function hiddenArray() {
    speakArray = [];
}

function playVoice(language, text) {
  playing = text;

        //Adds option when text is spoken
        var addUserInput = document.createElement("OPTION");
        addUserInput.setAttribute("value", playing);
        addUserInput.text = playing;
        document.getElementById("combo-box").appendChild(addUserInput);

        speakArray.push(playing); // Adds recent talks to speakArray

  if(document.getElementById('mode').innerHTML=="2"){
    //After the voice is loaded, playSound callback is called
    getBotReply(text);
    setTimeout(function(){
        loadVoice(language, playSound);
    }, 4000);
  }
  else{
            loadVoice(language, playSound);
  }
}

1 个答案:

答案 0 :(得分:0)

我终于弄清楚了。这是代码:

 hiddenArray(); // Access speakArray

// Function containing the speakArray, which saves the recent talk array
function hiddenArray() {
    speakArray = [];
}

function playVoice(language, text) {
  playing = text;

  //Adds option when text is spoken
  var addUserInput = document.createElement("OPTION");
  addUserInput.setAttribute("value", playing);
  addUserInput.text = playing;
  document.getElementById("combo-box").appendChild(addUserInput);

  document.getElementById("combo-box").value = playing;

  speakArray.push(playing); // Adds recent talks to speakArray

  if(document.getElementById('mode').innerHTML=="2"){
    //After the voice is loaded, playSound callback is called
    getBotReply(text);
    setTimeout(function(){
        loadVoice(language, playSound);
    }, 4000);
  }
  else{
            loadVoice(language, playSound);
  }
}

所以我在这里所做的是将组合框(选择标签)的值分配给最近添加的选项(可变播放)。