0

我一直在阅读他的文章,我意识到我需要一个委托的事件处理程序。

编辑:我想要做的是:当一个人选择一个新值时,我希望触发一个事件来填充相邻下拉框的选项列表。此时,如果发出警报,我会知道它有效。然而,这并没有发生。我想要的是在选择新选项时触发事件

我的事件处理程序:

$(document).ready(function(){
 $('#DDgrade').on("change", ".oDDclass", function() {
 var originatingid = jQuery(this).attr("id");
 var grade =    $("#DDgrade :selected").text();
alert('grade= '+grade);
return;
  }); 
});

创建下拉列表的代码:

<select name="DDgrade" id="DDgrade" onChange="$('#theotherdropdowns').css({'visibility': 'hidden'});" style="width:130px;height:30px;margin-bottom:5px;">
<option value="Grade">Grade</option>

<?php
    $mysqli1 = connecttomydatabase();
    $query2="
    SELECT grade 
    FROM a10daydefaults 
    ;";

    $stmt = $mysqli1->prepare($query2) ; echo $stmt->error ;
    //var_dump($mysqli1->error);
    if ( $stmt->execute() ) {;} else{ printf("Query error: %s", $stmt->error); } 
    $stmt->store_result();
    $stmt->bind_result($theresult);

    while($stmt->fetch()) {
        echo $theresult ."<br>";
        echo "<option value='$theresult' class='oDDclass'>$theresult</option>";
    }           
    $stmt->free;
    $stmt->close;
?>          
</select>

我已经读过这个,我认为我做对了,但它不起作用。

4

1 回答 1

0

option仅针对该元素的元素没有更改事件select

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/change

如果选择元素没有动态添加到页面中,则更新不需要事件委托,您可以执行以下操作

$('#DDgrade').change(function(){
     var grade =    $("#DDgrade :selected").text();
     alert('grade= '+grade);
});

查看它的实际效果,并选择动态添加的选项元素:http: //jsfiddle.net/nNK9y/

如果您将选择元素动态添加到页面,那么您需要委托。

于 2013-08-30T03:54:15.677 回答