2016-12-25 16 views
1

テキストボックスのテキストが変更されているかどうかをチェックするチェックボックスを5つ作成しました。しかし、すべてのチェックボックスは同時にチェックすることができます。一度に1つのチェックボックスしかチェックされないようにしたい。チェックボックスに従ってテキストボックスの値を変更する方法

$(".check").change(function(){ 
     var text = ""; 
     $(".check:checked").each(function(){ 
      text += text != "" ? "^" : ""; 
      if ($(this).prop("checked")) 
       text += $(this).val(); 
     }); 
     $(".text").val(text); 
    }); 


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <input type="checkbox" class="check" value="Text1" /> 
    <input type="checkbox" class="check" value="Text2" /> 
    <input type="checkbox" class="check" value="Text3" /> 
    <input type="checkbox" class="check" value="Text4" /> 
    <input type="checkbox" class="check" value="Text5" /> 
    <br/> 
    <input type="text" class="text" /> 
+1

1つだけが、なぜあなたはchekboxesではなく、ラジオボタンを使用している時にチェックしたい場合は? –

+0

チェックボックスのみが必要 –

+0

最も簡単な方法は、ラジオボタンを使用することです...あなたは何かを簡単に行うことを試みます。ところで、これは動作していますか? – funilrys

答えて

0

私が提案、編集、コメント、明確に開いているので、私はJSの専門家ではないよ...

アイデアは、他のチェックボックスを無効にし、テキストボックスに、選択した値を追加することです。

var text = ""; 
 
// text += text != "" ? "^" : ""; 
 
$('.check').click(function() { 
 
    var $inputs = $('.check'); 
 
    if ($(this).is(':checked')) { 
 
     $inputs.not(this).prop('disabled', true); 
 
     if ($(this).prop("checked")) { 
 
      if (text !== "") { 
 
       text += "^"; 
 
      } 
 
      text += $(this).val(); 
 
      $(".text").val(text); 
 
     } 
 
    } else { 
 
     $inputs.prop('disabled', false); 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" class="check" value="Text1" /> 
 
<input type="checkbox" class="check" value="Text2" /> 
 
<input type="checkbox" class="check" value="Text3" /> 
 
<input type="checkbox" class="check" value="Text4" /> 
 
<input type="checkbox" class="check" value="Text5" /> 
 
<br/> 
 
<input type="text" class="text" />

関連する問題