Remove specific characters from string jquery [duplicate]





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







3
















This question already has an answer here:




  • jQuery: Add values of checkboxes to input text field

    4 answers




OK, So although it seems normal substring or replaces solution answer it is quite complex for me.



I have 3 checkboxes
A,B,C
and one text box
Now, when user select any checkbox the value of checkbox appends into textbox i.e. Fist he selects A -> textbox will be appended by A
Then if selects B -> textbox value will be A, B and so on.



i have done it already.
Now the problem is for unchecking.



If the value of textbox is A,B,C i.e. the selected checkboxes are A,B,C and if user deselects the B then the value should be A,C and then again deselects the c then the value should be A.



I have tried multiple ways but don't work for all conditions, sometimes it becomes A, C or A, B



Any solution?
Thank you in advance :)










share|improve this question















marked as duplicate by Mohammad, Community Nov 17 '18 at 9:42


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 3





    Why not just discard the previous value, and calculate the new value from all currently selected boxes?

    – CertainPerformance
    Nov 17 '18 at 7:30






  • 1





    Can you post your working solution for checking the boxes?

    – AnonymousSB
    Nov 17 '18 at 7:32


















3
















This question already has an answer here:




  • jQuery: Add values of checkboxes to input text field

    4 answers




OK, So although it seems normal substring or replaces solution answer it is quite complex for me.



I have 3 checkboxes
A,B,C
and one text box
Now, when user select any checkbox the value of checkbox appends into textbox i.e. Fist he selects A -> textbox will be appended by A
Then if selects B -> textbox value will be A, B and so on.



i have done it already.
Now the problem is for unchecking.



If the value of textbox is A,B,C i.e. the selected checkboxes are A,B,C and if user deselects the B then the value should be A,C and then again deselects the c then the value should be A.



I have tried multiple ways but don't work for all conditions, sometimes it becomes A, C or A, B



Any solution?
Thank you in advance :)










share|improve this question















marked as duplicate by Mohammad, Community Nov 17 '18 at 9:42


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 3





    Why not just discard the previous value, and calculate the new value from all currently selected boxes?

    – CertainPerformance
    Nov 17 '18 at 7:30






  • 1





    Can you post your working solution for checking the boxes?

    – AnonymousSB
    Nov 17 '18 at 7:32














3












3








3









This question already has an answer here:




  • jQuery: Add values of checkboxes to input text field

    4 answers




OK, So although it seems normal substring or replaces solution answer it is quite complex for me.



I have 3 checkboxes
A,B,C
and one text box
Now, when user select any checkbox the value of checkbox appends into textbox i.e. Fist he selects A -> textbox will be appended by A
Then if selects B -> textbox value will be A, B and so on.



i have done it already.
Now the problem is for unchecking.



If the value of textbox is A,B,C i.e. the selected checkboxes are A,B,C and if user deselects the B then the value should be A,C and then again deselects the c then the value should be A.



I have tried multiple ways but don't work for all conditions, sometimes it becomes A, C or A, B



Any solution?
Thank you in advance :)










share|improve this question

















This question already has an answer here:




  • jQuery: Add values of checkboxes to input text field

    4 answers




OK, So although it seems normal substring or replaces solution answer it is quite complex for me.



I have 3 checkboxes
A,B,C
and one text box
Now, when user select any checkbox the value of checkbox appends into textbox i.e. Fist he selects A -> textbox will be appended by A
Then if selects B -> textbox value will be A, B and so on.



i have done it already.
Now the problem is for unchecking.



If the value of textbox is A,B,C i.e. the selected checkboxes are A,B,C and if user deselects the B then the value should be A,C and then again deselects the c then the value should be A.



I have tried multiple ways but don't work for all conditions, sometimes it becomes A, C or A, B



Any solution?
Thank you in advance :)





This question already has an answer here:




  • jQuery: Add values of checkboxes to input text field

    4 answers








javascript jquery






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 17 '18 at 8:10









Yashwardhan Pauranik

2,24311731




2,24311731










asked Nov 17 '18 at 7:29









Niket NaikNiket Naik

304




304




marked as duplicate by Mohammad, Community Nov 17 '18 at 9:42


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by Mohammad, Community Nov 17 '18 at 9:42


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.










  • 3





    Why not just discard the previous value, and calculate the new value from all currently selected boxes?

    – CertainPerformance
    Nov 17 '18 at 7:30






  • 1





    Can you post your working solution for checking the boxes?

    – AnonymousSB
    Nov 17 '18 at 7:32














  • 3





    Why not just discard the previous value, and calculate the new value from all currently selected boxes?

    – CertainPerformance
    Nov 17 '18 at 7:30






  • 1





    Can you post your working solution for checking the boxes?

    – AnonymousSB
    Nov 17 '18 at 7:32








3




3





Why not just discard the previous value, and calculate the new value from all currently selected boxes?

– CertainPerformance
Nov 17 '18 at 7:30





Why not just discard the previous value, and calculate the new value from all currently selected boxes?

– CertainPerformance
Nov 17 '18 at 7:30




1




1





Can you post your working solution for checking the boxes?

– AnonymousSB
Nov 17 '18 at 7:32





Can you post your working solution for checking the boxes?

– AnonymousSB
Nov 17 '18 at 7:32












5 Answers
5






active

oldest

votes


















3














You can simply recreate the list on change of a box






let els = [...document.getElementsByClassName('check')];
els.forEach(e => e.addEventListener('change', () => {
document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
}))

.flex {
display: flex;
flex-direction: column;
}

<div class="flex">
<input id="foo" />
<label><input type="checkbox" class="check" value="A"/>A</label>
<label><input type="checkbox" class="check" value="B"/>B</label>
<label><input type="checkbox" class="check" value="C"/>C</label>
</div>








share|improve this answer
























  • Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

    – AnonymousSB
    Nov 17 '18 at 8:00













  • I did check for performance. jsperf.com/compare-foreach-vs-tostring

    – AnonymousSB
    Nov 17 '18 at 9:36











  • Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

    – AnonymousSB
    Nov 17 '18 at 9:45



















1

















function displayVals() {
var singleValues = $( "#single" ).val();
var multipleValues = $( "#multiple" ).val() || ;
$( "p" ).html( "Single: " + singleValues +
" Multiple: " + multipleValues.join( ", " ) );
}
$( "select" ).change( displayVals );
displayVals();

p {
color: red;
margin: 4px;
}
b {
color: blue;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>
<select id="single">
<option>Single</option>
<option>Single2</option>
</select>
<select id="multiple" multiple="multiple">
<option selected="selected">A</option>
<option>B</option>
<option selected="selected">C</option>
</select>








share|improve this answer































    0














    Try this:



    1) On each checkbox click/unclick get the value of all checked checkboxes. (for example ['A', 'B'])



    2) Generate the new string with join the values . ['A', 'B'].join(',') // returns 'A,B'



    3) Set the textbox with the new string



    If you need code you can submit your current code.






    share|improve this answer































      0














      Here's what I came up with, without knowing how you're tracking what's checked or not, it's a data driven approach.






      var checked = ;

      function updateValue() {
      $('#selected').val(checked.toString());
      }

      $('[type=checkbox]').click(function(e) {
      var value = e.target.value;

      if(e.target.checked) {
      checked.push(value);
      } else {
      checked.splice(checked.indexOf(value), 1);
      }
      updateValue();
      });

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <input type="checkbox" value="A">A<br>
      <input type="checkbox" value="B">B<br>
      <input type="checkbox" value="C">C<br>
      <input type="text" id="selected">








      share|improve this answer

































        0

















        $(function() {

        const valArray = ; // our value array here what gonna show in textarea

        /**
        - on change check if checkbox checked or not
        - if checked push value of checkbox to array
        if not search in our array "valArray" and get it's index then remove it
        - change textarea value with the new array "valArray"
        */
        $('.checkboxes input').on('change', function(e) {
        const $thisVal = $(this).val(),
        isChecked = $(this).is(':checked');

        if (isChecked) {
        valArray.push($thisVal);
        } else {
        const searchOnThisVal = valArray.find(item => $thisVal === item),
        getTheIdx = valArray.indexOf(searchOnThisVal);

        valArray.splice(getTheIdx, 1);
        }

        $('.textarea').empty();
        $('.textarea').text(valArray);
        });
        });

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <div class="checkboxes">
        <label>
        <input type="checkbox" value="a">
        the checkbox A.
        </label>
        <label>
        <input type="checkbox" value="b">
        the checkbox B.
        </label>
        <label>
        <input type="checkbox" value="c">
        the checkbox C.
        </label>
        </div>

        <textarea class="textarea" placeholder="your choice..."></textarea>





        this should work in your case using jQuery API






        share|improve this answer
































          5 Answers
          5






          active

          oldest

          votes








          5 Answers
          5






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          You can simply recreate the list on change of a box






          let els = [...document.getElementsByClassName('check')];
          els.forEach(e => e.addEventListener('change', () => {
          document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
          }))

          .flex {
          display: flex;
          flex-direction: column;
          }

          <div class="flex">
          <input id="foo" />
          <label><input type="checkbox" class="check" value="A"/>A</label>
          <label><input type="checkbox" class="check" value="B"/>B</label>
          <label><input type="checkbox" class="check" value="C"/>C</label>
          </div>








          share|improve this answer
























          • Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

            – AnonymousSB
            Nov 17 '18 at 8:00













          • I did check for performance. jsperf.com/compare-foreach-vs-tostring

            – AnonymousSB
            Nov 17 '18 at 9:36











          • Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

            – AnonymousSB
            Nov 17 '18 at 9:45
















          3














          You can simply recreate the list on change of a box






          let els = [...document.getElementsByClassName('check')];
          els.forEach(e => e.addEventListener('change', () => {
          document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
          }))

          .flex {
          display: flex;
          flex-direction: column;
          }

          <div class="flex">
          <input id="foo" />
          <label><input type="checkbox" class="check" value="A"/>A</label>
          <label><input type="checkbox" class="check" value="B"/>B</label>
          <label><input type="checkbox" class="check" value="C"/>C</label>
          </div>








          share|improve this answer
























          • Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

            – AnonymousSB
            Nov 17 '18 at 8:00













          • I did check for performance. jsperf.com/compare-foreach-vs-tostring

            – AnonymousSB
            Nov 17 '18 at 9:36











          • Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

            – AnonymousSB
            Nov 17 '18 at 9:45














          3












          3








          3







          You can simply recreate the list on change of a box






          let els = [...document.getElementsByClassName('check')];
          els.forEach(e => e.addEventListener('change', () => {
          document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
          }))

          .flex {
          display: flex;
          flex-direction: column;
          }

          <div class="flex">
          <input id="foo" />
          <label><input type="checkbox" class="check" value="A"/>A</label>
          <label><input type="checkbox" class="check" value="B"/>B</label>
          <label><input type="checkbox" class="check" value="C"/>C</label>
          </div>








          share|improve this answer













          You can simply recreate the list on change of a box






          let els = [...document.getElementsByClassName('check')];
          els.forEach(e => e.addEventListener('change', () => {
          document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
          }))

          .flex {
          display: flex;
          flex-direction: column;
          }

          <div class="flex">
          <input id="foo" />
          <label><input type="checkbox" class="check" value="A"/>A</label>
          <label><input type="checkbox" class="check" value="B"/>B</label>
          <label><input type="checkbox" class="check" value="C"/>C</label>
          </div>








          let els = [...document.getElementsByClassName('check')];
          els.forEach(e => e.addEventListener('change', () => {
          document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
          }))

          .flex {
          display: flex;
          flex-direction: column;
          }

          <div class="flex">
          <input id="foo" />
          <label><input type="checkbox" class="check" value="A"/>A</label>
          <label><input type="checkbox" class="check" value="B"/>B</label>
          <label><input type="checkbox" class="check" value="C"/>C</label>
          </div>





          let els = [...document.getElementsByClassName('check')];
          els.forEach(e => e.addEventListener('change', () => {
          document.getElementById('foo').value = els.filter(x => x.checked).map(x => x.value).join();
          }))

          .flex {
          display: flex;
          flex-direction: column;
          }

          <div class="flex">
          <input id="foo" />
          <label><input type="checkbox" class="check" value="A"/>A</label>
          <label><input type="checkbox" class="check" value="B"/>B</label>
          <label><input type="checkbox" class="check" value="C"/>C</label>
          </div>






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 17 '18 at 7:40









          bambambambam

          47.6k877124




          47.6k877124













          • Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

            – AnonymousSB
            Nov 17 '18 at 8:00













          • I did check for performance. jsperf.com/compare-foreach-vs-tostring

            – AnonymousSB
            Nov 17 '18 at 9:36











          • Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

            – AnonymousSB
            Nov 17 '18 at 9:45



















          • Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

            – AnonymousSB
            Nov 17 '18 at 8:00













          • I did check for performance. jsperf.com/compare-foreach-vs-tostring

            – AnonymousSB
            Nov 17 '18 at 9:36











          • Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

            – AnonymousSB
            Nov 17 '18 at 9:45

















          Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

          – AnonymousSB
          Nov 17 '18 at 8:00







          Be aware, this won't work in Internet Explorer, you'll need to convert those ES6 fat arrows and the spread operator. Also, just so you're aware, this solution uses four for loops.

          – AnonymousSB
          Nov 17 '18 at 8:00















          I did check for performance. jsperf.com/compare-foreach-vs-tostring

          – AnonymousSB
          Nov 17 '18 at 9:36





          I did check for performance. jsperf.com/compare-foreach-vs-tostring

          – AnonymousSB
          Nov 17 '18 at 9:36













          Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

          – AnonymousSB
          Nov 17 '18 at 9:45





          Btw, I'm not looking to put you on the offensive here. It's easy to forget that filter, map, and join are all for loops. Even the toString() call in my solution is a for loop, because it calls join behind the scenes.

          – AnonymousSB
          Nov 17 '18 at 9:45













          1

















          function displayVals() {
          var singleValues = $( "#single" ).val();
          var multipleValues = $( "#multiple" ).val() || ;
          $( "p" ).html( "Single: " + singleValues +
          " Multiple: " + multipleValues.join( ", " ) );
          }
          $( "select" ).change( displayVals );
          displayVals();

          p {
          color: red;
          margin: 4px;
          }
          b {
          color: blue;
          }

          <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
          <p></p>
          <select id="single">
          <option>Single</option>
          <option>Single2</option>
          </select>
          <select id="multiple" multiple="multiple">
          <option selected="selected">A</option>
          <option>B</option>
          <option selected="selected">C</option>
          </select>








          share|improve this answer




























            1

















            function displayVals() {
            var singleValues = $( "#single" ).val();
            var multipleValues = $( "#multiple" ).val() || ;
            $( "p" ).html( "Single: " + singleValues +
            " Multiple: " + multipleValues.join( ", " ) );
            }
            $( "select" ).change( displayVals );
            displayVals();

            p {
            color: red;
            margin: 4px;
            }
            b {
            color: blue;
            }

            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
            <p></p>
            <select id="single">
            <option>Single</option>
            <option>Single2</option>
            </select>
            <select id="multiple" multiple="multiple">
            <option selected="selected">A</option>
            <option>B</option>
            <option selected="selected">C</option>
            </select>








            share|improve this answer


























              1












              1








              1










              function displayVals() {
              var singleValues = $( "#single" ).val();
              var multipleValues = $( "#multiple" ).val() || ;
              $( "p" ).html( "Single: " + singleValues +
              " Multiple: " + multipleValues.join( ", " ) );
              }
              $( "select" ).change( displayVals );
              displayVals();

              p {
              color: red;
              margin: 4px;
              }
              b {
              color: blue;
              }

              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
              <p></p>
              <select id="single">
              <option>Single</option>
              <option>Single2</option>
              </select>
              <select id="multiple" multiple="multiple">
              <option selected="selected">A</option>
              <option>B</option>
              <option selected="selected">C</option>
              </select>








              share|improve this answer
















              function displayVals() {
              var singleValues = $( "#single" ).val();
              var multipleValues = $( "#multiple" ).val() || ;
              $( "p" ).html( "Single: " + singleValues +
              " Multiple: " + multipleValues.join( ", " ) );
              }
              $( "select" ).change( displayVals );
              displayVals();

              p {
              color: red;
              margin: 4px;
              }
              b {
              color: blue;
              }

              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
              <p></p>
              <select id="single">
              <option>Single</option>
              <option>Single2</option>
              </select>
              <select id="multiple" multiple="multiple">
              <option selected="selected">A</option>
              <option>B</option>
              <option selected="selected">C</option>
              </select>








              function displayVals() {
              var singleValues = $( "#single" ).val();
              var multipleValues = $( "#multiple" ).val() || ;
              $( "p" ).html( "Single: " + singleValues +
              " Multiple: " + multipleValues.join( ", " ) );
              }
              $( "select" ).change( displayVals );
              displayVals();

              p {
              color: red;
              margin: 4px;
              }
              b {
              color: blue;
              }

              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
              <p></p>
              <select id="single">
              <option>Single</option>
              <option>Single2</option>
              </select>
              <select id="multiple" multiple="multiple">
              <option selected="selected">A</option>
              <option>B</option>
              <option selected="selected">C</option>
              </select>





              function displayVals() {
              var singleValues = $( "#single" ).val();
              var multipleValues = $( "#multiple" ).val() || ;
              $( "p" ).html( "Single: " + singleValues +
              " Multiple: " + multipleValues.join( ", " ) );
              }
              $( "select" ).change( displayVals );
              displayVals();

              p {
              color: red;
              margin: 4px;
              }
              b {
              color: blue;
              }

              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
              <p></p>
              <select id="single">
              <option>Single</option>
              <option>Single2</option>
              </select>
              <select id="multiple" multiple="multiple">
              <option selected="selected">A</option>
              <option>B</option>
              <option selected="selected">C</option>
              </select>






              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Nov 17 '18 at 8:38









              Istiyak AminIstiyak Amin

              15313




              15313























                  0














                  Try this:



                  1) On each checkbox click/unclick get the value of all checked checkboxes. (for example ['A', 'B'])



                  2) Generate the new string with join the values . ['A', 'B'].join(',') // returns 'A,B'



                  3) Set the textbox with the new string



                  If you need code you can submit your current code.






                  share|improve this answer




























                    0














                    Try this:



                    1) On each checkbox click/unclick get the value of all checked checkboxes. (for example ['A', 'B'])



                    2) Generate the new string with join the values . ['A', 'B'].join(',') // returns 'A,B'



                    3) Set the textbox with the new string



                    If you need code you can submit your current code.






                    share|improve this answer


























                      0












                      0








                      0







                      Try this:



                      1) On each checkbox click/unclick get the value of all checked checkboxes. (for example ['A', 'B'])



                      2) Generate the new string with join the values . ['A', 'B'].join(',') // returns 'A,B'



                      3) Set the textbox with the new string



                      If you need code you can submit your current code.






                      share|improve this answer













                      Try this:



                      1) On each checkbox click/unclick get the value of all checked checkboxes. (for example ['A', 'B'])



                      2) Generate the new string with join the values . ['A', 'B'].join(',') // returns 'A,B'



                      3) Set the textbox with the new string



                      If you need code you can submit your current code.







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Nov 17 '18 at 7:38









                      user2693928user2693928

                      1,9211716




                      1,9211716























                          0














                          Here's what I came up with, without knowing how you're tracking what's checked or not, it's a data driven approach.






                          var checked = ;

                          function updateValue() {
                          $('#selected').val(checked.toString());
                          }

                          $('[type=checkbox]').click(function(e) {
                          var value = e.target.value;

                          if(e.target.checked) {
                          checked.push(value);
                          } else {
                          checked.splice(checked.indexOf(value), 1);
                          }
                          updateValue();
                          });

                          <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                          <input type="checkbox" value="A">A<br>
                          <input type="checkbox" value="B">B<br>
                          <input type="checkbox" value="C">C<br>
                          <input type="text" id="selected">








                          share|improve this answer






























                            0














                            Here's what I came up with, without knowing how you're tracking what's checked or not, it's a data driven approach.






                            var checked = ;

                            function updateValue() {
                            $('#selected').val(checked.toString());
                            }

                            $('[type=checkbox]').click(function(e) {
                            var value = e.target.value;

                            if(e.target.checked) {
                            checked.push(value);
                            } else {
                            checked.splice(checked.indexOf(value), 1);
                            }
                            updateValue();
                            });

                            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                            <input type="checkbox" value="A">A<br>
                            <input type="checkbox" value="B">B<br>
                            <input type="checkbox" value="C">C<br>
                            <input type="text" id="selected">








                            share|improve this answer




























                              0












                              0








                              0







                              Here's what I came up with, without knowing how you're tracking what's checked or not, it's a data driven approach.






                              var checked = ;

                              function updateValue() {
                              $('#selected').val(checked.toString());
                              }

                              $('[type=checkbox]').click(function(e) {
                              var value = e.target.value;

                              if(e.target.checked) {
                              checked.push(value);
                              } else {
                              checked.splice(checked.indexOf(value), 1);
                              }
                              updateValue();
                              });

                              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                              <input type="checkbox" value="A">A<br>
                              <input type="checkbox" value="B">B<br>
                              <input type="checkbox" value="C">C<br>
                              <input type="text" id="selected">








                              share|improve this answer















                              Here's what I came up with, without knowing how you're tracking what's checked or not, it's a data driven approach.






                              var checked = ;

                              function updateValue() {
                              $('#selected').val(checked.toString());
                              }

                              $('[type=checkbox]').click(function(e) {
                              var value = e.target.value;

                              if(e.target.checked) {
                              checked.push(value);
                              } else {
                              checked.splice(checked.indexOf(value), 1);
                              }
                              updateValue();
                              });

                              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                              <input type="checkbox" value="A">A<br>
                              <input type="checkbox" value="B">B<br>
                              <input type="checkbox" value="C">C<br>
                              <input type="text" id="selected">








                              var checked = ;

                              function updateValue() {
                              $('#selected').val(checked.toString());
                              }

                              $('[type=checkbox]').click(function(e) {
                              var value = e.target.value;

                              if(e.target.checked) {
                              checked.push(value);
                              } else {
                              checked.splice(checked.indexOf(value), 1);
                              }
                              updateValue();
                              });

                              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                              <input type="checkbox" value="A">A<br>
                              <input type="checkbox" value="B">B<br>
                              <input type="checkbox" value="C">C<br>
                              <input type="text" id="selected">





                              var checked = ;

                              function updateValue() {
                              $('#selected').val(checked.toString());
                              }

                              $('[type=checkbox]').click(function(e) {
                              var value = e.target.value;

                              if(e.target.checked) {
                              checked.push(value);
                              } else {
                              checked.splice(checked.indexOf(value), 1);
                              }
                              updateValue();
                              });

                              <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                              <input type="checkbox" value="A">A<br>
                              <input type="checkbox" value="B">B<br>
                              <input type="checkbox" value="C">C<br>
                              <input type="text" id="selected">






                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited Nov 17 '18 at 7:58

























                              answered Nov 17 '18 at 7:51









                              AnonymousSBAnonymousSB

                              2,239221




                              2,239221























                                  0

















                                  $(function() {

                                  const valArray = ; // our value array here what gonna show in textarea

                                  /**
                                  - on change check if checkbox checked or not
                                  - if checked push value of checkbox to array
                                  if not search in our array "valArray" and get it's index then remove it
                                  - change textarea value with the new array "valArray"
                                  */
                                  $('.checkboxes input').on('change', function(e) {
                                  const $thisVal = $(this).val(),
                                  isChecked = $(this).is(':checked');

                                  if (isChecked) {
                                  valArray.push($thisVal);
                                  } else {
                                  const searchOnThisVal = valArray.find(item => $thisVal === item),
                                  getTheIdx = valArray.indexOf(searchOnThisVal);

                                  valArray.splice(getTheIdx, 1);
                                  }

                                  $('.textarea').empty();
                                  $('.textarea').text(valArray);
                                  });
                                  });

                                  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                                  <div class="checkboxes">
                                  <label>
                                  <input type="checkbox" value="a">
                                  the checkbox A.
                                  </label>
                                  <label>
                                  <input type="checkbox" value="b">
                                  the checkbox B.
                                  </label>
                                  <label>
                                  <input type="checkbox" value="c">
                                  the checkbox C.
                                  </label>
                                  </div>

                                  <textarea class="textarea" placeholder="your choice..."></textarea>





                                  this should work in your case using jQuery API






                                  share|improve this answer






























                                    0

















                                    $(function() {

                                    const valArray = ; // our value array here what gonna show in textarea

                                    /**
                                    - on change check if checkbox checked or not
                                    - if checked push value of checkbox to array
                                    if not search in our array "valArray" and get it's index then remove it
                                    - change textarea value with the new array "valArray"
                                    */
                                    $('.checkboxes input').on('change', function(e) {
                                    const $thisVal = $(this).val(),
                                    isChecked = $(this).is(':checked');

                                    if (isChecked) {
                                    valArray.push($thisVal);
                                    } else {
                                    const searchOnThisVal = valArray.find(item => $thisVal === item),
                                    getTheIdx = valArray.indexOf(searchOnThisVal);

                                    valArray.splice(getTheIdx, 1);
                                    }

                                    $('.textarea').empty();
                                    $('.textarea').text(valArray);
                                    });
                                    });

                                    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                                    <div class="checkboxes">
                                    <label>
                                    <input type="checkbox" value="a">
                                    the checkbox A.
                                    </label>
                                    <label>
                                    <input type="checkbox" value="b">
                                    the checkbox B.
                                    </label>
                                    <label>
                                    <input type="checkbox" value="c">
                                    the checkbox C.
                                    </label>
                                    </div>

                                    <textarea class="textarea" placeholder="your choice..."></textarea>





                                    this should work in your case using jQuery API






                                    share|improve this answer




























                                      0












                                      0








                                      0










                                      $(function() {

                                      const valArray = ; // our value array here what gonna show in textarea

                                      /**
                                      - on change check if checkbox checked or not
                                      - if checked push value of checkbox to array
                                      if not search in our array "valArray" and get it's index then remove it
                                      - change textarea value with the new array "valArray"
                                      */
                                      $('.checkboxes input').on('change', function(e) {
                                      const $thisVal = $(this).val(),
                                      isChecked = $(this).is(':checked');

                                      if (isChecked) {
                                      valArray.push($thisVal);
                                      } else {
                                      const searchOnThisVal = valArray.find(item => $thisVal === item),
                                      getTheIdx = valArray.indexOf(searchOnThisVal);

                                      valArray.splice(getTheIdx, 1);
                                      }

                                      $('.textarea').empty();
                                      $('.textarea').text(valArray);
                                      });
                                      });

                                      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                                      <div class="checkboxes">
                                      <label>
                                      <input type="checkbox" value="a">
                                      the checkbox A.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="b">
                                      the checkbox B.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="c">
                                      the checkbox C.
                                      </label>
                                      </div>

                                      <textarea class="textarea" placeholder="your choice..."></textarea>





                                      this should work in your case using jQuery API






                                      share|improve this answer


















                                      $(function() {

                                      const valArray = ; // our value array here what gonna show in textarea

                                      /**
                                      - on change check if checkbox checked or not
                                      - if checked push value of checkbox to array
                                      if not search in our array "valArray" and get it's index then remove it
                                      - change textarea value with the new array "valArray"
                                      */
                                      $('.checkboxes input').on('change', function(e) {
                                      const $thisVal = $(this).val(),
                                      isChecked = $(this).is(':checked');

                                      if (isChecked) {
                                      valArray.push($thisVal);
                                      } else {
                                      const searchOnThisVal = valArray.find(item => $thisVal === item),
                                      getTheIdx = valArray.indexOf(searchOnThisVal);

                                      valArray.splice(getTheIdx, 1);
                                      }

                                      $('.textarea').empty();
                                      $('.textarea').text(valArray);
                                      });
                                      });

                                      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                                      <div class="checkboxes">
                                      <label>
                                      <input type="checkbox" value="a">
                                      the checkbox A.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="b">
                                      the checkbox B.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="c">
                                      the checkbox C.
                                      </label>
                                      </div>

                                      <textarea class="textarea" placeholder="your choice..."></textarea>





                                      this should work in your case using jQuery API






                                      $(function() {

                                      const valArray = ; // our value array here what gonna show in textarea

                                      /**
                                      - on change check if checkbox checked or not
                                      - if checked push value of checkbox to array
                                      if not search in our array "valArray" and get it's index then remove it
                                      - change textarea value with the new array "valArray"
                                      */
                                      $('.checkboxes input').on('change', function(e) {
                                      const $thisVal = $(this).val(),
                                      isChecked = $(this).is(':checked');

                                      if (isChecked) {
                                      valArray.push($thisVal);
                                      } else {
                                      const searchOnThisVal = valArray.find(item => $thisVal === item),
                                      getTheIdx = valArray.indexOf(searchOnThisVal);

                                      valArray.splice(getTheIdx, 1);
                                      }

                                      $('.textarea').empty();
                                      $('.textarea').text(valArray);
                                      });
                                      });

                                      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                                      <div class="checkboxes">
                                      <label>
                                      <input type="checkbox" value="a">
                                      the checkbox A.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="b">
                                      the checkbox B.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="c">
                                      the checkbox C.
                                      </label>
                                      </div>

                                      <textarea class="textarea" placeholder="your choice..."></textarea>





                                      $(function() {

                                      const valArray = ; // our value array here what gonna show in textarea

                                      /**
                                      - on change check if checkbox checked or not
                                      - if checked push value of checkbox to array
                                      if not search in our array "valArray" and get it's index then remove it
                                      - change textarea value with the new array "valArray"
                                      */
                                      $('.checkboxes input').on('change', function(e) {
                                      const $thisVal = $(this).val(),
                                      isChecked = $(this).is(':checked');

                                      if (isChecked) {
                                      valArray.push($thisVal);
                                      } else {
                                      const searchOnThisVal = valArray.find(item => $thisVal === item),
                                      getTheIdx = valArray.indexOf(searchOnThisVal);

                                      valArray.splice(getTheIdx, 1);
                                      }

                                      $('.textarea').empty();
                                      $('.textarea').text(valArray);
                                      });
                                      });

                                      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
                                      <div class="checkboxes">
                                      <label>
                                      <input type="checkbox" value="a">
                                      the checkbox A.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="b">
                                      the checkbox B.
                                      </label>
                                      <label>
                                      <input type="checkbox" value="c">
                                      the checkbox C.
                                      </label>
                                      </div>

                                      <textarea class="textarea" placeholder="your choice..."></textarea>






                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited Nov 17 '18 at 8:57

























                                      answered Nov 17 '18 at 8:38









                                      Amir FawzyAmir Fawzy

                                      25139




                                      25139















                                          Popular posts from this blog

                                          List item for chat from Array inside array React Native

                                          Xamarin.iOS Cant Deploy on Iphone

                                          App crashed after uploaded to heroku server