我一直在阅读他,我意识到我需要一个委托的事件处理程序。
编辑:我想要做的是:当一个人选择一个新值时,我希望一个事件被触发,填写相邻下拉框的选项列表。此时,如果发出警报,我会知道它有效。但是,这种情况并没有发生。我想要的是在选择新选项时触发事件
我的事件处理程序:
$(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>
我已经读过这个,我认为我正确地做了但它不起作用。
答案 0 :(得分:0)
仅option
元素的select
元素没有更改事件:
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/change
更新如果select元素未动态添加到页面中,则无需事件委派,您可以执行以下操作
$('#DDgrade').change(function(){
var grade = $("#DDgrade :selected").text();
alert('grade= '+grade);
});
通过动态添加选项元素选项来查看它的实际效果:http://jsfiddle.net/nNK9y/
如果您动态地将选择元素添加到页面中,那么您需要委派。