2011-11-11 18 views
0

こんにちは、ラジオボタンを使用してオプションを選択するサイトがあります。ボタン自体をクリックしても機能しません(選択されています)が、ボタンの下のテキストをクリックするとヘルプが表示されます。ラジオボタンがIE 9で動作しない

私はどのようにIE9にのみ修正プログラムを適用すればよいのですか?IE 6-8で問題なく動作します。

これはIE9の既知の問題ですか?ここ

OK非常

おかげで、ユーザーが両方のクリックできるようにするために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

'label'sを使うと、ラジオボタンにクリック可能なテキストを割り当てることができます.Javascriptの1行を書く必要はありません?イベントのバブリングやそのすべてのことについて心配する必要がないので、あなたの人生を楽にしてくれるでしょう。あなたはラベルのクリックを処理できます。あなたはラベルの中にラジオボタンを置くこともできます。あなたが今取得した 'attinner' divを置き換えるブロック要素として表示します。 – GolezTrol

答えて

3

のための正しい方法を動作しません。今IE9のための問題を修正したコードですが、テキストで、ボタンは生の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

また、グループの一部の単一または1つとしてラジオボタンを事前に選択することを忘れないでください。 – ggzone

+0

あなたの考えをお寄せいただきありがとうございますこのjavascriptの削除とhtmlとラベルを使用して非常に感謝の作品が表示されます – user1041401

関連する問題