好吧,我有一个从数据库中返回值的组合框。所有这些都是通过ajax发生的。用户可以单击一个名为添加新行的按钮,将生成一个新行,该行也将由组合框提供动力。 但是,我需要附上一个' onchange'事件发生在ajax返回的组合框中。
我试过了: -
<script type="text/javascript">
$('.combobox').change(function() {
var va = $('.combobox').val();
alert(va);
});
</script>
但这并没有奏效。我无法获得onchange事件的任何警报。
我必须尝试什么? 这是我的阿贾克斯: -
try
{
$s = $conn->query("SELECT * FROM testing2");
}
catch(PDOException $e)
{
echo $e->getMessage();
}
$selectBegin = "";
$selectBegin =
'
<select class="combobox">
<option value=""></option>
';
$innerSelectString = "";
$selectMain = "";
while($customers = $s->fetch(PDO::FETCH_OBJ))
{
//fix the select thing here
$si = "<option value='$customers->indexid'>$customers->v1</option>";
$selectMain .= $si;
}
$selectEnd = '</select>';
$selectFinal = $selectBegin . $selectMain . $selectEnd;
return $selectFinal;
有多个组合框,我有这个jquery代码来运行组合框: -
function load_content_rows()
{
$(document).ready(function() {
$.ajax({ //create an ajax request to load_page.php
type: "GET",
url: "ajax.php?requestid=1",
dataType: "html", //expect html to be returned
success: function(response){
$("#requestMaker").html(response);
$("#requestMaker").find(".combobox").combobox();
//alert(response);
}
}); //ajax request end
});
} //load_content
load_content_rows();
答案 0 :(得分:1)
从AJAX选项中删除此部分,这可能会节省很多问题:
dataType: "html", //expect html to be returned
所以你的AJAX请求是这样的:
$(document).ready(function() {
function load_content_rows() {
$.ajax({ //create an ajax request to load_page.php
type: "GET",
url: "ajax.php?requestid=1",
success: function(response){
$("#requestMaker").html(response);
$("#requestMaker").find(".combobox").combobox();
// alert(response);
}
}); // ajax request end
} //load_content
load_content_rows();
});
答案 1 :(得分:0)
我无法想到会阻止.change()
处理<select>
元素的任何事情,但是在您更换并重新创建组合框之后我没有看到您绑定事件ajax电话。这是一个新元素,因此需要再次绑定。在致电.change
后,在成功函数中添加.combobox()
,看看是否有效。