发生错误后保持用户输入

时间:2012-07-31 17:50:25

标签: php jquery forms drop-down-menu

问题在于:

我创建了一个显示安全问题的下拉菜单。其中一个选项是“其他”。如果选择“其他”,则会在下拉菜单旁边弹出一个文本框,提示用户输入自己的安全问题。

一切都很好,但当用户选择“其他”并发生错误(在表单的另一部分)时,向下滚动菜单仍显示“其他”,但旁边的文本框消失。如果$ _POST ['question'] == other,有没有办法让文本框保持在那里?

这是我的代码的摘录,如果它有用,我可以展示更多。

   <script type="text/javascript">
        $(function(){
            //initially hide the textbox
            $("#other_question").hide();
            $('#dd_question').change(function() {
              if($(this).find('option:selected').val() == "0"){
                $("#other_question").show();
              }else{
                $("#other_question").hide();
              }
            });
        });
    </script>

这是下拉菜单的代码(在php中)

$option_list = array(
        "1" => "In what city did your parents meet?",
        "2" => "What is your mother's maiden name?",
        "3" => "What was the name of your first pet?",
        "4" => "What is your oldest sibling's middle name?",
        "0" => "Other",
    );
foreach ($option_list as $option_id => $option) {
        echo "<option value = \"{$option_id}\" ";
        if ($option_id == $_POST['dd_question']) {
            echo " selected=\"selected\"";
        }
    echo ">{$option}</option>";
}

提前感谢所有建议!

1 个答案:

答案 0 :(得分:1)

在页面加载时,请始终检查其他选项 而不是

//initially hide the textbox
            $("#other_question").hide();

//initially check the default value in dd_question
if($('#dd_question').find('option:selected').val() == "0"){
                $("#other_question").show();
              }else{
                $("#other_question").hide();
              }