2012-02-18 3 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を割り当てるために忘れてしまいました
  • myType変数は、このスコープのローカルにあるifの中に宣言しました。

  • 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

0

現在の入力タグを新しいタグに置き換えます。しかし、新しい入力タグにidを与えないでください。

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