1

我在我的蛋糕应用程序中使用了 onclick() javascript 事件。但这在 google chrome 和 safari 中不起作用。这是我的代码

<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>
4

4 回答 4

3
onclick has to be on `<select` instead of `<option`

<select name="ovwear"  onClick=.....
于 2012-06-05T04:57:37.043 回答
1

我认为你不能附加一个onclickon <option>onchange改用on更好<select>

由于您使用的是 jQuery,因此请利用 using.on()附加处理程序。此外,data-*为标签上的自定义数据使用属性。此答案中的更多详细信息。

于 2012-06-05T04:55:51.293 回答
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>
于 2012-06-05T05:09:36.307 回答
0

您应该将 onclick 事件放在选择元素上而不是选项上。

于 2012-06-05T04:56:46.637 回答