0

我正在使用多选组合框,我从组合框中选择了几个值并将选定的值保存到 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 函数。任何人都可以帮助我解决如何将注意力重新集中在选定的项目上吗?谢谢你

4

2 回答 2

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>
于 2013-04-17T07:35:28.183 回答
0

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

于 2013-04-17T07:31:03.673 回答