0

複数選択コンボボックスを使用しています。コンボボックスからいくつかの値を選択し、選択した値をデータベースに保存します。ページを再度開くと、選択して保存した値に焦点を合わせる必要があります。

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 ページなどに送信してデータベースを更新すると仮定しています。その場合、ページに戻ったときに問題が選択された値を取得することになります。2 つの提案:

  • ajax を使用してデータベースを更新すると、ページを終了する必要がなくなります。
  • 選択した値を GET などを介してページに戻し、ページの読み込みに焦点を合わせます。

編集: - - - - - - -

たとえば、(www.example.com?param1=three) のように値を GET で渡す場合

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 に答える