How do I change an HTML selected option using JavaScript?

老子叫甜甜 提交于 2019-11-26 04:17:36

问题


I have option menu like this:

<form name=\"AddAndEdit\">
   <select name=\"list\" id=\"personlist\">
      <option value=\"11\">Person1</option>
      <option value=\"27\">Person2</option>
      <option value=\"17\">Person3</option>
      <option value=\"10\">Person4</option>
      <option value=\"7\">Person5</option>
      <option value=\"32\">Person6</option>
      <option value=\"18\">Person7</option>
      <option value=\"29\">Person8</option>
      <option value=\"28\">Person9</option>
      <option value=\"34\">Person10</option>
      <option value=\"12\">Person11</option>
      <option value=\"19\">Person12</option>
   </select>
</form>

And now I want to change the selected option by using an href. For example:

<a href=\"javascript:void(0);\"
  onclick=\"document.getElementById(\'personlist\').getElementsByTagName(\'option\')[11].selected = \'selected\';\">change</a>

But I want to select the option with value=11 (Person1), not Person12.

How do I change this code?


回答1:


Change

document.getElementById('personlist').getElementsByTagName('option')[11].selected = 'selected'

to

document.getElementById('personlist').value=Person_ID;



回答2:


Tools as pure JavaScript code for handling Selectbox:

Graphical Understanding:

Image - A


Image - B


Image - C

Updated - 25-June-2019 | Fiddler DEMO

JavaScript Code:

/**
 * Empty Select Box
 * @param eid Element ID
 * @param value text
 * @param text text
 * @author Neeraj.Singh
 */
function emptySelectBoxById(eid, value, text) {
    document.getElementById(eid).innerHTML = "<option value='" + value + "'>" + text + "</option>";
}


/**
 * Reset Select Box
 * @param eid Element ID
 */

function resetSelectBoxById(eid) {
    document.getElementById(eid).options[0].selected = 'selected';
}


/**
 * Set Select Box Selection By Index
 * @param eid Element ID
 * @param eindx Element Index
 */

function setSelectBoxByIndex(eid, eindx) {
    document.getElementById(eid).getElementsByTagName('option')[eindx].selected = 'selected';
    //or
    document.getElementById(eid).options[eindx].selected = 'selected';
}


/**
 * Set Select Box Selection By Value
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByValue(eid, eval) {
    document.getElementById(eid).value = eval;
}


/**
 * Set Select Box Selection By Text
 * @param eid Element ID
 * @param eval Element Index
 */
function setSelectBoxByText(eid, etxt) {
    var eid = document.getElementById(eid);
    for (var i = 0; i < eid.options.length; ++i) {
        if (eid.options[i].text === etxt)
            eid.options[i].selected = true;
    }
}


/**
 * Get Select Box Text By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxText(eid) {
    return document.getElementById(eid).options[document.getElementById(eid).selectedIndex].text;
}


/**
 * Get Select Box Value By ID
 * @param eid Element ID
 * @return string
 */

function getSelectBoxValue(id) {
    return document.getElementById(id).options[document.getElementById(id).selectedIndex].value;
}



回答3:


I believe that the blog post JavaScript Beginners – Select a dropdown option by value might help you.

<a href="javascript:void(0);" onclick="selectItemByValue(document.getElementById('personlist'),11)">change</a>

function selectItemByValue(elmnt, value){

  for(var i=0; i < elmnt.options.length; i++)
  {
    if(elmnt.options[i].value === value) {
      elmnt.selectedIndex = i;
      break;
    }
  }
}



回答4:


You could also change select.options.selectedIndex DOM attribute like this:

function selectOption(index){ 
  document.getElementById("select_id").options.selectedIndex = index;
}
<p>
<select id="select_id">
  <option selected>first option</option>
  <option>second option</option>
  <option>third option</option>
</select>
</p>
<p>
  <button onclick="selectOption(0);">Select first option</button>
  <button onclick="selectOption(1);">Select second option</button>
  <button onclick="selectOption(2);">Select third option</button>
</p>



回答5:


mySelect.value = myValue;

Where mySelect is your selection box, and myValue is the value you want to change it to.




回答6:


You can use JQuery also

$(document).ready(function () {
  $('#personlist').val("10");
}



回答7:


An array Index will start from 0. If you want value=11 (Person1), you will get it with position getElementsByTagName('option')[10].selected.




回答8:


If you are adding the option with javascript

function AddNewOption(userRoutes, text, id) 
{
    var option = document.createElement("option");
    option.text = text;
    option.value = id;
    option.selected = "selected";
    userdRoutes.add(option);
}


来源:https://stackoverflow.com/questions/10911526/how-do-i-change-an-html-selected-option-using-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!