jQuery - 如果选中多个复选框,则为文本框添加一个字符串,并为每个复选框添加一个字符串

时间:2017-06-22 16:25:29

标签: javascript jquery string checkbox textbox

我有超过25个复选框。到目前为止,当项目检查值是否在文本框内时,我有它。我要做的是...在第一个复选框被检查后,然后在下面的文本框中输入值...所有其他检查的东西需要在每个检查的值之前添加一个“AND”字符串。我的剧本如下......

    <script>
        $(document).ready(function(){
            var lastChecked;
            var $checks = $('input:checkbox').click(function(e) {
                var numChecked = $checks.filter(':checked').length;
                    if (numChecked > 1 ) {
                        $(":checkbox:checked").each(function(){
                            var text = $('#text_query');
                            text.val(' AND' + text.val());
                    });                                 
                }
                lastChecked = this;
            });
        }); 
    </script>  

我遇到的问题是所有的“And”都出现在所有产品的前面,我从一个文本框内检查的第一个产品中收到了额外的“AND”。实施例

AND AND AND Product_1 Product_2 Product_3

看起来应该是这样......

Product_1 AND Product_2 AND Product_3

所以我错过了什么。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

你的AND追加有一些不正确的逻辑。看看下面。

&#13;
&#13;
$(document).ready(function() {
  var lastChecked;
  var $checks = $('input:checkbox').click(function(e) {
    var numChecked = $checks.filter(':checked').length;
    var text = $('#text_query');
    text.val('');
    $(":checkbox:checked").each(function() {
      console.log($(this).val());
      text.val($(this).val() + ' AND ' + text.val());
    });
    var str = text.val();
    text.val(str.substring(0, str.length - 4));
    lastChecked = this;
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" value="1">
<input type="checkbox" value="2">
<input type="checkbox" value="3">
<input type="checkbox" value="4">
<input type="checkbox" value="5">
<input type="checkbox" value="6">
<input type="checkbox" value="7">
<input type="checkbox" value="8">
<input type="checkbox" value="9">
<br/>
<input type="text" id="text_query">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个

    var text = $('#text_query');
     text.val(text.val('AND'));