2011-11-11 97 views
0

嗨,我有一个网站使用单选按钮来选择选项。如果你点击按钮本身,它不起作用(获得选择),但如果你点击按钮下面的文本,将不胜感激任何帮助。单选按钮不能在IE浏览器中工作9

顺便说一句如何将我只适用于IE9修补程序,因为所有在IE 6-8工作正常。

这是IE9的一个已知问题?

非常感谢

确定这里是固定的IE9问题的代码,但现在对于IE 8-6

<script type="text/javascript"> 
    <!-- 
    $(function() 
    { 
     inClickFunc=false; 

     var changeFunc = function() 
     { 
      if(!inClickFunc) 
      { 
       $(this).parent().click(); 
      } 

      return false; 
     }; 

     $("input[type=radio]").bind('change', changeFunc); 
     $("input[type=radio]").bind('propertychange', changeFunc); 

     $(".attinner").click(function() 
     { 
      inClickFunc=true; 
      var input=$("input", this); 

      $(".sub-values", $(this).parents(".middlecontent")).remove(); 

      if(input.attr("checked")) 
      { 
       input.attr("checked", false); 
      } 
      else 
      { 
       input.attr("checked", true); 
       var div=this; 

       $.get("/js/product_options.php", {product_id: 1130, value_id: $(input).attr("value")}, function(result) 
       { 
        if(result) 
        { 
         $(div).parent().nextAll(".clear").eq(0).after(result); 
        } 
       }); 
      } 

      inClickFunc=false; 
     }); 

     $('.sub-value').livequery('click', function() 
     { 
      $("input", this).attr("checked", true); 
     }); 

     $("[name=product]").submit(function() 
     { 
      var submit=false; 

      $.ajax(
      { 
       type: 'POST', 
       async: false, 
       url: '/js/validate_product.php', 
       data: $(this).serialize(), 
       success: function(msg) 
       { 
        if(msg.length==0) 
        { 
         submit=true; 
        } 
        else 
        { 
         submit=false; 
         alert(msg); 
        } 
       } 
      }); 

      return submit; 
     }); 

     /*$(".middlecontent").each(function() { 
      $options = $(this).find('.attinner'); 

      if($options.length == 1) 
      { 
       $options.click() 
      } 
     });*/ 
    }); 
    --> 
</script><h2>Size (Height x Width x Depth)</h2> 
<div class="middlecontent"> 
       <div class="attribute-wide"> 
     <div class="attinner"> 
                <input type="radio" title="Values" name="values[23]" class="required" value="5325"><div class="attvalue"> 
      1981mm x 686mm x 35mm<br>78" x 27" x 1.38"<br><span class="size-price">(£109.00)</span>   </div> 
     </div> 
    </div> 
         <div class="attribute-wide"> 
     <div class="attinner"> 
                <input type="radio" title="Values" name="values[23]" class="required" value="5324"><div class="attvalue"> 
      1981mm x 762mm x 35mm<br>78" x 30" x 1.38"<br><span class="size-price">(£109.00)</span>   </div> 
     </div> 
+0

张贴一些代码。 – JackWilson

+0

这是一些代码,这已经解决了IE9的问题,但现在不能在IE 8-6 – user1041401

+0

你知道你可以使用'标签'来分配一个可点击的文本到单选按钮,而不必写一行的Javascript ?它会让你的生活更轻松,因为你不必担心事件冒泡和所有的东西,你只需要处理标签上的点击。你可以将标签放在标签内,这样你就可以将其显示为一个块元素来替换您现在获得的'attinner' div。 – GolezTrol

回答

3

不工作的正确方法允许用户同时点击文本和按钮是使用带有原始HTML的标签标签,因此不需要乱用JavaScript或JQuery。

尝试标记了你这样的按钮:

<input id="radio1" type="radio" name="account" value="radiobutton" /> 
<input type="radio" title="Values" name="values[23]" class="required" value="5324" id="unique_identifier"> 
<label for="unique_identifier">1981mm x 686mm x 35mm<br />78" x 27" x 1.38"<br /><span class="size-price">(£109.00)</span></label> 
+0

也不要忘记预先选择单选按钮或组的一部分。 – ggzone

+0

感谢您的想法会看到,如果删除的JavaScript和使用HTML和标签的作品非常感谢 – user1041401

相关问题