2016-12-25 87 views
1

我已經根據選中的文本框中的文本更改了5個複選框。但是所有的複選框可以同時檢查。我希望一次只檢查一個複選框。如何根據複選框更改文本框的值

$(".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

如果你只想要一個在同一時刻你爲什麼要使用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" />