jquery <select>问题</select>

时间:2011-03-31 04:17:38

标签: jquery select

<select name="securityq1" class="selectInput">
    <option value="">Please select</option>
    <option value="What is your matric no?">What is your matric no?</option> 
    <option value="What is the name of your lover?" >What is the name of your lover?</option>
    <option value="What is your profession?" >What is your profession?</option>
</select>

大家好,这是我的安全问题,当我想要执行更新功能时,我想从数据库中提取用户之前输入的问题。如果问题很少,我可以做愚蠢的<option value="What is your matric no?" <?php if($database['securityq1']=="What is your matric no") echo "selected"; ?>>...</option>

但安全问题可能多达15个问题,这样做是非常繁琐的吗?当我使用jQuery for UI时,如何使用jQuery快速进行操作?谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

您必须在服务器端以某种方式确定所选值。我建议您将选项保留在数组或其他集合中并循环遍历它们:

$options = array("What is your matric no?", ...); 
foreach($options as $option) {
   echo "<option value=\"$option\"";
   if($database['securityq1'] === $option) {
      echo ' selected';
   }
   echo ">$option</option>";
}

您可以将例程包装在一个函数中,并更容易处理所有类似的情况。

如果你坚持使用jQuery,你可以做这样的事情

$('select[name=securityq1] option[value="'+ selectedSecurityQuestion +'"]').attr('selected','selected');

在某处定义selectedSecurityQuestionSee it in action.

但是,如果关闭javascript,此解决方案将无效。这是否是一个问题取决于目标受众。

答案 1 :(得分:0)

尝试一次..

<script>

    $("select").change(function () {
          var str = "";
          $("select option:selected").each(function () {
                str += $(this).text() + " ";
              });
          $("div").text(str);
        })
        .trigger('change');
</script>