Home > Enterprise >  How to set only one option in jquery chosen multi select when I submit the form
How to set only one option in jquery chosen multi select when I submit the form

Time:01-11

I am using the Jquery Chosen plugin here I want to allow maximum number of options one. in drop-down it have many option, even if I submit with more then one option it should throw the error like please select one option only.

Here in this scenario i want to allow only one option in multi-select dropdown. I'm unable to control the one option anyone can you please help me how to validation the option in multi-select.

$('.chosen-select').chosen()
  .on('change', function(evt, params) {
    max_selected_options = 1;
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css" integrity="sha512-yVvxUQV0QESBt1SyZbNJMAwyKvFTLMyXSyBHDO4BG5t7k/Lw34tyqlSDlKIrIENIzCl RVUNjmCPG V/GMesRw==" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js" integrity="sha512-rMGGF4wg1R73ehtnxXBt5mbUfN9JUJwbk21KMlnLZDJh7BkPmeovBuddZCENJddHYYMkCh9hPFnPmS9sspki8g==" crossorigin="anonymous"></script>

<select data-placeholder="Choose..."  multiple="" name="milestone">
  <option value=""></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>

CodePudding user response:

Just remove the multiple attribute on select tag. here is an example:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css" integrity="sha512-yVvxUQV0QESBt1SyZbNJMAwyKvFTLMyXSyBHDO4BG5t7k/Lw34tyqlSDlKIrIENIzCl RVUNjmCPG V/GMesRw==" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js" integrity="sha512-rMGGF4wg1R73ehtnxXBt5mbUfN9JUJwbk21KMlnLZDJh7BkPmeovBuddZCENJddHYYMkCh9hPFnPmS9sspki8g==" crossorigin="anonymous"></script>

<form id="myForm">
<select data-placeholder="Choose..." multiple  name="milestone">
  <option value=""></option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>
<input type="submit" value="submit"/>
</form>

<script>
 let choosen = $(".chosen-select").chosen({width: "200px"});
 
 $('#myForm').on('submit', function(e){
  e.preventDefault();
  const form = e.target;
  const milestones = $(form.elements.milestone).val();
  if(milestones.length > 1) alert('error');
  else alert('success')
 })
</script>

  •  Tags:  
  • Related