如何保持下拉的持久状态?

时间:2009-10-16 07:02:52

标签: javascript web-applications javascript-events

我正在创建一个简单的Web应用程序,它在表单标签的第一页中有下拉列表。 现在我改变提交表单的下拉列表中的值。在onchange我已经调用创建一个查询字符串自定义所选索引的JS函数。 现在我希望下拉列表保持其状态;提交后保留最后选择的值 朋友我该怎么办?
谢谢大家。

4 个答案:

答案 0 :(得分:2)

您可以将选定的属性与任何(例如空白)值添加到您想要保持选中状态。

答案 1 :(得分:2)

getQueryValue函数有点未被优化,并且可能通过正则表达式匹配来获得值更好,但我只是这样输入它以便你可以看到它在做什么。

<html>
<head>
<script type="text/javascript">
function setSelections()
{
    document.myForm.mySelect.value = getQueryValue("mySelect");
};

function getQueryValue(key)
{
    var queryString = window.location.search.substring(1);
    var queryParams = queryString.split("&");
    for(var i = 0; i < queryParams.length; i++)
    {
        if(queryParams[i].indexOf("=") > 0)
        {
            var keyValue = queryParams[i].split("=");
            if(keyValue[0] == key)
            {
                return keyValue[1];
            }
        }
    }

    return null;
}
</script>
</head>
<body onload="setSelections();">
    <form name="myForm" action="" method="get">
        <select id="mySelect" name="mySelect" onchange="document.myForm.submit();">
            <option value="Opt1">Option 1</option>
            <option value="Opt2">Option 2</option>
            <option value="Opt3">Option 3</option>
            <option value="Opt4">Option 4</option>
        </select>
    </form>
</body>
</html>

答案 2 :(得分:0)

取决于提交后如何处理页面,如果它转换为PHP / Perl或任何语言来重建页面,则将下拉选项放入脚本并循环遍历它们。

像这样的东西很常见

for($i = 0; $i < 10; $i++){
echo "<option value='{$i}' ";
($i == $_POST['dropdownname'])? echo "selected='selected'":"";
echo ">{$i}</option>";
}

答案 3 :(得分:0)

您可以将隐藏的表单变量传递给下一个发布的页面。使用循环选择下拉列表选项的简单Javascript函数,如果任何选项与隐藏值匹配,则设置其selected sttribute。