2012-02-18 28 views
1
<script type="text/javascript"> 

     $(document).ready(function() { 
     $('#change').click(function() { 
      if ($('#change:checked').length > 0) { 
       var myType = "checkbox"; 
      } else { 
       var myType = "radio"; 
      } 
      var checkbox = $("#Radio1"); 
      checkbox.replaceWith('<input type="' + myType + '" name="option1"/>'); 

    }); 
</script> 

HTMLUnblr到複選框轉換爲單選按鈕

<input type="checkbox" name="change" id="change"/> 
    <label for="changem">Change Buttons</label> 
    <br/> 
    <br/> 
<input id="Radio1" type="radio" name="option1" value="answer1"/> 

當我點擊複選框單選按鈕轉換爲複選框,但unclicking是不是轉換成無線電。

回答

0

有幾個與你的代碼問題:

  • 你忘了,當你更換其內容,以便下一次你$('#Radio1')選擇不返回任何

  • 分配一個ID爲按鈕
  • 您在if內聲明myType變量,該變量在本範圍內是本地的。

  • 您沒有正確關閉document.ready處理程序和click處理程序之間的})

這裏就是我會建議你:

$(function() { 
    $('#change').change(function() { 
     var myType = 'radio'; 
     if ($(this).is(':checked')) { 
      myType = 'checkbox'; 
     } 

     $('#Radio1').replaceWith(
      $('<input/>', { 
       id: 'Radio1', 
       name: 'option1', 
       type: myType 
      }) 
     ); 
    }); 
}); 

而且這裏有一個live demo

+0

現在它是正常工作... – coder25 2012-02-18 11:41:35

0

用新的替換當前的輸入標籤。但不要給新的輸入標籤一個id。

'<input type="' + myType + '" id="change" name="option1"/>'