javascript - Ctrl select multiple items and access via form post -


i have form has list of days shown - user clicks on day , use jquery populate hidden field value can reference in post array.

i allow users select more 1 item using ctrl+click , able access selected options in post array not sure how go it?

i have figured out how allow selecting multiple items cant figure out how access via post current code contains last clicked item in hidden field.

here using currently:

var multiple = false; $(document).on('keyup keydown', function(e) {   multiple = e.ctrlkey; });  $(document).ready(function () {     $(document).on('click', '[name="day"]', function () {         if (multiple) {             $('[name="date"]').val($(this).text());             $(this).addclass('selected');         } else {             $('[name="day"]').removeclass('selected');             $('[name="date"]').val($(this).text());             $(this).addclass('selected');         }     }); }); 

http://jsfiddle.net/z44lvs48/1/

you're using $('[name="date"]').val($(this).text());, means replace value in input every time date clicked.

instead, should append input , separate each value with, example, comma.

so change:

$('[name="date"]').val($(this).text()); 

to:

$('[name="date"]').val($('[name="date"]').val() + ',' + $(this).text()); 

the $('[name="date"]').val() means add current value.

i've removed 'hidden' input in example can see mean (updated fiddle here):

var multiple = false;  $(document).on('keyup keydown', function(e) {    multiple = e.ctrlkey;  });    $(document).ready(function() {    $(document).on('click', '[name="day"]', function() {      if (multiple) {        $('[name="date"]').val($('[name="date"]').val() + ',' + $(this).text());        $(this).addclass('selected');      } else {        $('[name="day"]').removeclass('selected');        $('[name="date"]').val($(this).text());        $(this).addclass('selected');      }    });  });
.selected {    background-color: red;    color: white;  }  .base {    float: left;    height: 40px;    width: 40px;    margin-right: 10px;    padding: 10px;    border: 1px solid;    cursor: pointer;    text-align: center;    border-radius: 5px;    font-size: 10px;  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <input name="date">    <br>  <span id="days_disp"><div name="day" class="base wd selected"><span>mon</span>  <br>05/10/2015</div>  <div name="day" class="base wd"><span>tue</span>    <br>06/10/2015</div>  <div name="day" class="base wd"><span>wed</span>    <br>07/10/2015</div>  <div name="day" class="base wd"><span>thu</span>    <br>08/10/2015</div>  <div name="day" class="base wd"><span>fri</span>    <br>09/10/2015</div>  <div name="day" class="base nwd"><span>sat</span>    <br>10/10/2015</div>  <div name="day" class="base nwd"><span>sun</span>    <br>11/10/2015</div>  </span>

you can access hidden input's value (val()) , use .split(',') (to split @ each comma) form array of dates can work on whatever want do.


Comments

Popular posts from this blog

python - pip install -U PySide error -

arrays - C++ error: a brace-enclosed initializer is not allowed here before ‘{’ token -

cytoscape.js - How to add nodes to Dagre layout with Cytoscape -