【问题标题】:Radio button selection issue when the back button is pressed in Chrome在 Chrome 中按下后退按钮时单选按钮选择问题
【发布时间】:2014-11-25 17:25:41
【问题描述】:

我有 16 个 radio 按钮,它们是调查的两个问题的一部分(每个问题 8 个按钮)。当两个问题都得到回答后,php 会重定向到相同的下一页,依此类推。

当在浏览器中按下后退按钮时,我预计之前的两个答案仍然是checked。在 Chrome 中,之前的两个答案中的一个始终保持为checked。在 Safari 中,之前的两个答案都保持选中状态,这是我的预期。这不是一个大问题,但如果 Chrome 的行为方式相同,那就太好了。我还确保两个缓存都已清空,等等。

我昨天发布了一个相关问题,显示了我如何显示和验证 radio 按钮:

JQuery Validation With Multiple Sets Of Radio Buttons

如果这还不够,我可以发布更多代码。

【问题讨论】:

    标签: html forms


    【解决方案1】:

    您最有可能需要做的是使用 $_SESSION['answer_1'] = 1; 之类的方法跟踪每个问题的答案

    那么您需要确保您的浏览器不会通过禁用自动完成来控制表单的状态:

    <form action="some_file.php" method="post" autocomplete="off">
    

    然后你需要做的就是在你的表单中添加这个:

    <Input type='radio' name='question1choice1' value= '1' <?=(($_SESSION['answer_1' == 1) ? 'checked' : 'unchecked');?>Choice 1
    <Input type='radio' name='question1choice2' value= '2' <?=(($_SESSION['answer_1' == 2) ? 'checked' : 'unchecked');?>Choice 2
    

    【讨论】:

    • 谢谢 - 我添加了autocomplete="off",现在当按下后退按钮时,没有任何选项处于活动状态,这比从两个选项中选择一个要好。我对输入标签中的代码有点困惑。 if 声明的简写是什么?所有答案确实都存储到 $_SESSION 数组中,如下所示:$_SESSION['songs']['song01'] = array('question01' =&gt; $_POST['question01'], 'question02' =&gt; $_POST['question02']......
    • 简写的基本意思是: if ($_SESSION[xyz] == something) { do this } else { do that };更多信息(三元运算符):php.net/manual/en/language.operators.comparison.php
    猜你喜欢
    • 2020-05-21
    • 2013-01-09
    • 1970-01-01
    • 2015-12-25
    • 2017-09-05
    • 1970-01-01
    • 2014-12-08
    • 2018-04-19
    • 1970-01-01
    相关资源
    最近更新 更多