2012-06-05 133 views
1

我在我的蛋糕应用程序中使用了onclick()javascript事件。但这不适用于谷歌浏览器和Safari浏览器。 这里是我的代码OnClick事件不适用于谷歌浏览器和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> 
+0

你为什么不使用$ .post() – 2012-06-05 05:00:31

回答

1

我认为你不能在<option>附加一个onclick。改为使用onchange代替<select>

而且由于您使用的是jQuery,请利用使用.on()来附加处理程序。此外,还可以使用data-*属性为标签上的自定义数据。更多详细信息在this answer

0

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

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

<select name="ovwear" onClick=..... 
+0

感谢您的回复,但我使用选择循环 – Rajeev

+0

所以我只使用

+0

我明白。你需要改变你的方法。选择并定义onchange并传递你所需的值,该值已经在循环 – Rab

0

你使用jQuery,因此,你应该使用jQuery的。你应该结合选择元素本身的变化情况,并作为数据属性存储这些相关的值:

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

thansk中设置为你的真棒回复,但是这个只显示1,1,1,...在下拉列表中 Rajeev

+0

谢谢,我已经解决了这个问题, 你是伟大的人 – Rajeev

+0

@ user1436533如果这解决了你的问题,请考虑接受点击旁边的复选标记。 – Sampson

相关问题