За последние 24 часа нас посетили 54135 программистов и 1780 роботов. Сейчас ищут 1010 программистов ...

Проблема radio button с кроссбраузерностью

Тема в разделе "JavaScript и AJAX", создана пользователем Shkarbatov, 28 июл 2011.

  1. Shkarbatov

    Shkarbatov Активный пользователь

    С нами с:
    23 июл 2011
    Сообщения:
    19
    Симпатии:
    0
    Подскажите пожалуйста. Есть 3-и radio button, 3-и формы и соответственно обработчики этих radio button.

    Первоначально все формы скрыты, мне необходимо по нажатию на первый radio button показать первую форму (2 и 3 формы не видны), по нажатию на второй - скрыть первую и показать вторую (1, 3-я форма не видна), по нажатию на 3 radio button скрыть 2 форму (1, 2 формы не видны).

    По нажатию на radio button я вызываю обработкич событий javascript - onclick="show(1)". Для скрытия и отображения форм использую display:none и display:block соответственно.

    Скрипт вроде как работает, но работает только на Chrome и на Safari, на IE (пробывал на 8 версии) и на FireFox (пробывал на 5 версии) - оно не работает.

    Проверял тег input и событие onclick - пишут что поддерживается всеми браузерами на 100%.

    Помогите пожалуйста разобраться, сидел-сидел - ничего не предумал, решил обратиться за помощью к профессионалам.

    Заранее благодарен!


    HTML:
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 //EN" "http://www.w3.org/TR/xhtml4/strict.dtd">
    2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    3.  
    4.     <script type="text/javascript" src="jquery.js" ></script>
    5.     <script src="pack.js"></script>
    6.  
    7. #form1, #form2, #form3, #form4  {display:none;}
    8.  
    9. <!-- ------------------------------------------------- --> 
    10.  
    11. </head>
    12.   <body>
    13.  
    14.     <input type="radio" name="radio" onclick="show(1)"> 1
    15.     <input type="radio" name="radio" onclick="show(2)"> 2
    16.     <input type="radio" name="radio" onclick="show(3)"> 3
    17.  
    18. <!-- ------------------------------------------------- --> 
    19.  
    20. <form id="form1" action="send_email.php" method="post" enctype="multipart/form-data">
    21.  
    22.     <p class="type1">
    23.     <select id="sel" size="1" name="width1">
    24.     <option value="17">17</option>
    25.     <option value="20">20</option>
    26.     <option value="26">26</option>
    27.     </select>   Ширина
    28.     </p>
    29.    
    30. </form>
    31.  
    32. <!-- ---------------- -   --- - - -  - -   - - - ----------------- --> 
    33.  
    34. <form id="form2" action="send_email.php" method="post" enctype="multipart/form-data">
    35.  
    36.     <p class="type2">
    37.     <select id="heigh_2" size="1" name="height_2">
    38.     <option value="35">35</option>
    39.     <option value="40">40</option>
    40.     <option value="45">45</option>
    41.     </select>   Высота
    42.     </p>
    43.    
    44. </form>
    45.  
    46. <!-- ---------------- --- --- --  -  -   -   - - - --------------- --> 
    47.  
    48. <form id="form3" action="send_email.php" method="post" enctype="multipart/form-data">
    49.    
    50.     <p class="type3">
    51.     <select id="shir_3" size="1" name="shir_3">
    52.     <option value="30">30</option>
    53.     <option value="40">40</option>
    54.     <option value="50">50</option>
    55.     </select>   Ширина
    56.     </p>
    57.  
    58. <!-- ------------------------------------------------- -->
    59.  
    60. </form>
    61.  
    62.   </body>
    63. </html>



    [js] function show(num) {
    if(num == 1) {
    $(".type1").css("display", "block");
    $(".type2").css("display", "none");
    $(".type3").css("display", "none");
    $(".type4").css("display", "none");
    $("#form1").css("display", "block");
    $("#form2").css("display", "none");
    $("#form3").css("display", "none");
    $("#form4").css("display", "none");
    }
    else if (num == 2) {
    $(".type1").css("display", "none");
    $(".type2").css("display", "block");
    $(".type3").css("display", "none");
    $(".type4").css("display", "none");
    $("#form1").css("display", "none");
    $("#form2").css("display", "block");
    $("#form3").css("display", "none");
    $("#form4").css("display", "none");
    }
    else if (num == 3) {
    $(".type1").css("display", "none");
    $(".type2").css("display", "none");
    $(".type3").css("display", "block");
    $(".type4").css("display", "none");
    $("#form1").css("display", "none");
    $("#form2").css("display", "none");
    $("#form3").css("display", "block");
    $("#form4").css("display", "none");
    }
    }[/js]
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    HTML:
    1.   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    2.   <title></title>
    3.   <script type="text/javascript" src="jquery.js" ></script>
    4.   <script type="text/javascript" src="pack.js"></script>
    5.   <style type="text/css">
    6.     #form1, #form2, #form3, #form4  {display:none;}
    7.   </style>
    8. </head>
    pack.js
    [js]function show(num) {
    $('#form1').hide();
    $('#form2').hide();
    $('#form3').hide();
    $('#form4').hide();
    $('#form'+num).show();
    }[/js]

    причина была в неверном оформлении тега <script>