使用多选组合时,如何获得所选值的焦点

时间:2013-04-17 07:02:19

标签: javascript

我正在使用多选组合框,我从组合框中选择几个值并将所选值保存到db。当我重新打开页面时,我需要将焦点放在已选择和保存的值上。

function getSelectedValues() {
    var from = document.getElementById("309127");
    var to;
    var v = from.options.length;
    var selectedValues = "";

    for (var i = 0; i < v; i++) {
        if (from.options[i] && from.options[i].selected) {
            var CVal = from.options[i].value;
            var CText = from.options[i].text;

            if (selectedValues == "") {
                selectedValues = CVal;
            }
            else {
                selectedValues = selectedValues + "~" + CVal;
            }

        }
    }
    return selectedValues;

}

这是我用来保存db中所选值的javascript函数。 任何人都可以帮我解决如何将重点放在选定的项目上? 谢谢

2 个答案:

答案 0 :(得分:1)

要使用javascript设置焦点,您可以使用

document.getElementById("309127").focus();

对于您的问题,我假设您将值发送到PHP页面或类似的东西以更新数据库。如果是这样,当您返回页面时,您的问题将获得所选的值。两个建议:

  • 使用ajax更新数据库,这样您就不需要退出页面了
  • 通过GET或类似方法将所选值传回您的页面,并将焦点设置为页面加载。

编辑:-------------

例如,如果您通过GET传递值(www.example.com?param1=three)

您可以使用javascript在加载时选择该值:

<html>
<body onload="load()">
<select id="example">
    <option value="one"> one </option>
    <option value="two"> two </option>
    <option value="three"> three </option>
</select>
</body>

<script>
function load(){
    var param1 = getParameterByName("param1");
    var selected = document.getElementById('example');
    var opts = selected.options.length;
    for (var i=0; i<opts; i++){
    if (selected.options[i].value == param1){
        selected.options[i].selected = true;
        break;
    }
}
}
function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}
</script>
</html>

答案 1 :(得分:0)

尝试var from = document.getElementById("309127");from.focus();