Javascript OnClick事件在google chrome和safari中不起作用

Javascript OnClick事件在google chrome和safari中不起作用,javascript,onclick,Javascript,Onclick,我在我的蛋糕应用程序中使用了onclick()javascript事件。但这在谷歌浏览器和safari中不起作用。 这是我的密码 <select name="ovwear" > <option>--Select Category--</option> <?php $i = 1; foreach($styleDetail as $key=>$val)

我在我的蛋糕应用程序中使用了onclick()javascript事件。但这在谷歌浏览器和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>

--选择类别--

我想你不能在
上单击
来附加
。最好在
上使用
onchange


由于您使用的是jQuery,所以请利用使用来附加处理程序。另外,对于标签上的自定义数据,请使用
data-*
属性。更多详细信息请参见。

我想您不能在
上单击
。最好在
上使用
onchange


由于您使用的是jQuery,所以请利用使用来附加处理程序。另外,对于标签上的自定义数据,请使用
data-*
属性。更多详细信息,请参见。

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

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

onclick必须打开`
onclick必须打开`您正在使用jQuery,因此,您应该使用jQuery。您应该绑定到select元素本身的更改事件,并将这些相关值存储为数据属性:

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

<select name="ovwear"  onClick=.....
<?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>

$(函数(){
$(“选择[name='ovwear']”)。在(“更改”,函数()上){
所选变量=$(“选项:所选”,此选项);
$.ajax({
类型:“POST”,
url:“/admin/shop/styledata”,
数据:{'cat_id':$(选中)。数据(“cat id”)},
数据类型:“html”,
成功:功能(数据){
$(“#警报”).html(数据);
}
});
});
});

您正在使用jQuery,因此,您应该使用jQuery。您应该绑定到select元素本身的更改事件,并将这些相关值存储为数据属性:

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

$(函数(){
$(“选择[name='ovwear']”)。在(“更改”,函数()上){
所选变量=$(“选项:所选”,此选项);
$.ajax({
类型:“POST”,
url:“/admin/shop/styledata”,
数据:{'cat_id':$(选中)。数据(“cat id”)},
数据类型:“html”,
成功:功能(数据){
$(“#警报”).html(数据);
}
});
});
});

为什么不使用$.post()为什么不使用$.post(),所以我只在froeach循环中使用标记,而不是选择标记我理解。你需要改变你的方法。定义onchange on select并传递您所需的值,该值已在循环中设置,因此我仅在froeach循环中使用标记,而不是select标记。我理解。你需要改变你的方法。定义onchange on select并传递您所需的值,该值已在loopthansk中为您的精彩回复设置,但这仅显示1,1,1,。。。在下拉@ USE1436533中,如果这解决了你的问题,请考虑通过点击回答旁的复选标记来接受。在下拉@ USE1436533中,如果这解决了您的问题,请考虑通过单击答案旁边的复选标记来接受。