我有以下HTML <select>元素:

<select id="leaveCode" name="leaveCode">
  <option value="10">Annual Leave</option>
  <option value="11">Medical Leave</option>
  <option value="14">Long Service</option>
  <option value="17">Leave Without Pay</option>
</select>

使用带有leaveCode数字作为参数的JavaScript函数,我如何在列表中选择适当的选项?


当前回答

为什么不为元素的Id添加一个变量,使其成为一个可重用的函数呢?

function SelectElement(selectElementId, valueToSelect)
{    
    var element = document.getElementById(selectElementId);
    element.value = valueToSelect;
}

其他回答


function foo(value)
{
    var e = document.getElementById('leaveCode');
    if(e) e.value = value;
}

恐怕我现在无法测试这个,但在过去,我相信我必须给每个选项标签一个ID,然后我做了如下的事情:

document.getElementById("optionID").select();

如果这行不通,也许它会让你更接近一个解决方案:P

如果使用PHP,您可以尝试这样做:

$value = '11';
$first = '';
$second = '';
$third = '';
$fourth = '';

switch($value) {
            case '10' :
                $first = 'selected';
            break;
            case '11' :
                $second = 'selected';
            break;
            case '14' :
                $third = 'selected';
            break;
            case '17' :
                $fourth = 'selected';
            break;
        }

echo'
<select id="leaveCode" name="leaveCode">
  <option value="10" '. $first .'>Annual Leave</option>
  <option value="11" '. $second .'>Medical Leave</option>
  <option value="14" '. $third .'>Long Service</option>
  <option value="17" '. $fourth .'>Leave Without Pay</option>
</select>';

为什么不为元素的Id添加一个变量,使其成为一个可重用的函数呢?

function SelectElement(selectElementId, valueToSelect)
{    
    var element = document.getElementById(selectElementId);
    element.value = valueToSelect;
}

这里提到的大部分代码都不适合我!

最后,这招奏效了

窗口。addEventListener很重要,否则,你的JS代码将在Options中获取值之前运行

    window.addEventListener("load", function () {
            // Selecting Element with ID - leaveCode  //
            var formObj = document.getElementById('leaveCode');

            // Setting option as selected
            let len;
            for (let i = 0, len = formObj.length; i < len; i++){
                if (formObj[i].value == '<value to show in Select>') 
                 formObj.options[i].selected = true;
            }
    });

希望这有帮助!