问题在于:
我创建了一个显示安全问题的下拉菜单。其中一个选项是“其他”。如果选择“其他”,则会在下拉菜单旁边弹出一个文本框,提示用户输入自己的安全问题。
一切都很好,但当用户选择“其他”并发生错误(在表单的另一部分)时,向下滚动菜单仍显示“其他”,但旁边的文本框消失。如果$ _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>";
}
提前感谢所有建议!
答案 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();
}