这种情况是关于动态div的下拉选项。
如果您必须在下拉菜单中做出选择,那么您所看到的效果将是完美的。这个例子是关于一个修改页面,过去已经在其中进行了选择,并且该值来自数据库。

剧本:

$sql = "SELECT * FROM accountics WHERE id = '$id'";
$res = mysql_query($sql) or die (mysql_error());

while($row = mysql_fetch_assoc($res)) { ?>

<div class="col-sm-10">
  <select name="categorie" class="form-control" id="selectMe">
    <option selected value="<?php echo $row['categorie']; ?>"><?php echo $row['categorie']; ?></option>

 <?php
 $sql1 = "SELECT distinct naam FROM lijst_accountics_categorie";
 $res1 = mysql_query($sql1) or die (mysql_error());

 while($row = mysql_fetch_assoc($res1)) {
 ?>

 <option value="<?php echo $row['naam']; ?>"><?php echo $row['naam']; ?></option>

 <?php
 }

 $sql = "SELECT * FROM accountics WHERE id = '$id'";
 $res = mysql_query($sql) or die (mysql_error());

     while($row = mysql_fetch_assoc($res)) {

 ?>

  </select>
</div>


现在我们有了div的脚本:

<!-- Category is restaurant -->
<div id="Restaurant" class="group">

   <div class="col-sm-10">
      <input type="text" name="bedrag1_excl" class="form-control" id="field-1" value="<?php echo $row['bedrag1_excl']; ?>">
   </div>

</div>


<!-- If category is not Restaurant -->
<div id="Geen" class="group">

<div class="col-sm-10">
   <input type="text" name="bedrag_excl" class="form-control" id="field-1" value="<?php echo $row['bedrag_excl']; ?>">
</div>
</div>

</div>


在这里,我们有JavaScript代码,用于在下拉列表后调用div。我认为这是错误的。
“ Geen”的价值是餐厅无法选择的一切。

<script>
$(document).ready(function () {
   $('.group').hide();
   $('#Geen').show();

$('#selectMe').change(function () {
$('.group').hide();

var Restaurant = $("#selectMe").val();

if(Restaurant === 'Restaurant') {
   $('#Restaurant').show();
} else {
   $('#Geen').show();
}

})
});
</script>


如果我刷新此页面,则可以在下拉列表中很好地实现这些值(从先前保存的数据库值中检索到的值)。
现在,您从下拉列表中做出其他选择,之后必须将其设置为旧值,否则javascript无法正常工作。

最佳答案

您的PHP代码在while中循环,看

while($row = mysql_fetch_assoc($res)) { ?>

    <div class="col-sm-10">
      <select name="categorie" class="form-control" id="selectMe">


因此,您有许多实例id="selectMe"
这是不正确的HTML。这是一个逻辑错误。
您需要对id使用CSS类而不是<select>

顺便说一句,如果您在事件侦听器中,则可以通过$(this).val()访问该值。它将恰好解决已更改的元素。

关于javascript - JavaScript未遵循下拉列表选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28076944/

10-11 15:04
查看更多