我在我的蛋糕应用程序中使用了onclick()javascript事件。但这不适用于谷歌浏览器和野生动物园。 这是我的代码
<select name="ovwear" >
<option>--Select Category--</option>
<?php
$i = 1;
foreach($styleDetail as $key=>$val) { ?>
<option onClick="catDetail(<?php echo $val['shop_style_categories']['cat_id'].",".$val['shop_style_categories']['parent_id'] ?>);" value="<?php echo $i;?>">Category <?php echo $i;?></option>
<?php $i++; } ?>
</select>
这是功能:
<script type="text/javascript">
function catDetail(cat_id,parent_id){
//alert("called here");
var cat_id = cat_id;
var parent_id = parent_id;
jQuery.ajax({
type: "POST",
url: "/admin/shop/styledata",
data:"cat_id=" + cat_id,
dataType: "html",
success: function(data) {
$("#alertt").html(data);
}
});
}
</script>
答案 0 :(得分:3)
onclick has to be on `<select` instead of `<option`
<select name="ovwear" onClick=.....
答案 1 :(得分:1)
我认为您无法在onclick
上附加<option>
。最好在onchange
上使用<select>
。
由于您使用的是jQuery,因此请使用.on()
来附加处理程序。此外,对标记上的自定义数据使用data-*
属性。 this answer中的更多详细信息。
答案 2 :(得分:0)
你应该在select元素上放置onclick事件而不是选项。
答案 3 :(得分:0)
你正在使用jQuery,因此,你应该使用 jQuery。您应该绑定select元素本身的change事件,并将这些相关值存储为数据属性:
<?php
$o = "";
for ( $i = 0; $i < count( $styleDetail ); $i++ ) {
$o .= sprintf("<option data-cat-id='%s' data-parent-id='%s'>%s</option>",
$styleDetail[$i]['shop_style_categories']['cat_id'],
$styleDetail[$i]['shop_style_categories']['parent_id'],
"Category " . $i+1 );
}
?>
<select name="ovwear"><?php echo $o; ?></select>
接下来,我们需要绑定数据:
<script>
$(function(){
$("select[name='ovwear']").on("change", function(){
var selected = $("option:selected", this);
$.ajax({
type: "POST",
url: "/admin/shop/styledata",
data: { 'cat_id':$(selected).data("cat-id") },
dataType: "html",
success: function(data) {
$("#alert").html(data);
}
});
});
});
</script>