【问题标题】:Is it possible to retain form radio selections using the back button?是否可以使用后退按钮保留表单单选选项?
【发布时间】:2012-07-27 17:26:49
【问题描述】:

用户可以选择一个单选按钮,根据选择的单选按钮,输入字段可以显示要求提供更多信息。用户提交表单;然后说他们需要返回并更改表格。当他们返回时,输入字段不再显示,但选择了正确的单选按钮。

答案只需要在 IE8+ 中工作。 使用 jQuery 作为解决方案的一部分也是一种选择。

--==2012 年 7 月 31 日更新,使用 jQuery 插件 simsalabim ==--

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>

<!---<script src="sisyphus.min.js"></script>--->
<script type="text/javascript" src="https://raw.github.com/simsalabim/sisyphus/master/sisyphus.min.js"></script>
<script>
$(document).ready(function(){
    $('#form1').sisyphus();
});
</script>
</head>

<body>
<script>
    function ToggleColorOptions(el) {
    if (el == 'Std')
            {
        $('#Option1').show();
        $('#Option2').hide();
    }
        else if (el == 'Non')
            {
                $('#Option1').hide();
                $('#Option2').show();
            }
        }
</script>

<form id="form1" action="myTesta.cfm" method="post">
<input name="StdRNonStdOption" type="radio" id="StdRNonStdOption_std" onclick="ToggleColorOptions('Std');" value="Std" />
Standard <br />
<input name="StdRNonStdOption" type="radio" id="StdRNonStdOption_non" onclick="ToggleColorOptions('Non');" value="Non" />
Non-Standard <br />

<div id="Option1" style="display:none;">
    <select name="ThisColor" >
        <option></option>
        <option>Blue</option>
        <option>Green</option>
    </select>
</div>
<div id="Option2" style="display:none;">
    <input name="ThisColor" type="text" size="20" maxlength="51" />
</div>
<input type="submit" value="Save" />

【问题讨论】:

    标签: javascript jquery html jquery-plugins webforms


    【解决方案1】:

    使用类似 Sisyphus、类似 gmail 的客户端 localStorage 插件。可能是您最好的选择...

    http://simsalabim.github.com/sisyphus/

    【讨论】:

    • 这非常适合保留选定的值,但它不记得应该隐藏或显示哪些元素。 :(
    【解决方案2】:

    您在 JQuery 中的解决方案:

    制作一个输入类型按钮

    将展开的点击选项放在一个类名为 someexpandedoptions 的 div 中

    点击事件切换可见性

    $('.someexpandedoptions').css('display','inline');
    
    $('.someexpandedoptions').css('display','none');
    

    就这么简单。

    只需确保正确初始化按钮即可。

    【讨论】:

    • 您的解决方案似乎更适合切换输入框的显示...我弄错了吗?
    • 我认为这在很大程度上取决于浏览器在您提交表单之前如何记住表单有些浏览器会,有些则不会......并且没有简单的方法让它们在表单提交后记住。 ......例如Firefox 在记忆方面做得很好……但 IE 没有……查看历史 API、客户端本地存储以获取答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    相关资源
    最近更新 更多