php - How to reset chosen class li elements using jquery/javascript -


i need help. need reset li elements again auto created chosen-select jquery plug-in.

<link href="css/chosen.css" rel="stylesheet"> <script type="text/javascript" src="js/chosen.jquery.js"></script> <div class="popover-content"> <p>                             <select class="chosen-select text-left" style="width:100%;"  onchange="setcountry();" id="conid"> <option value="" selected>select country</option> <?php foreach ($country $v) { ?> <option value="<?php echo $v['country_id']; ?>"><?php echo $v['country_name']; ?></option>     <?php  } ?> </select> </p> </div> <div id="popupcity" class="popover" style="width:270px"> <div class="arrow"></div> <h3 class="popover-title">select city</h3> <div class="popover-content" id="ctchoosen"> <p>                             <select class="text-left" style="width:100%;" id="ctid" onchange="setcity();"> <option value="" selected>select city</option> </select> </p> </div> </div> 

when user selects country, city values added city select list.

function setcountry(){         var conval=document.getelementbyid('conid');         var selectval='';         if (conval.selectedindex == -1){             return null;         }else{             selectval=conval.options[conval.selectedindex].text;             $("#popupcountry").removeclass("in");         }         document.getelementbyid('bindcon').innerhtml=selectval;         $('#bordercon').css('border', '');         //console.log('contr',conval.options[conval.selectedindex].value);         var url="common.php?action=getcity";         $.post(url,{"con_data":conval.options[conval.selectedindex].value},function(data){             var obj=json.parse(data);             console.log('data1',obj);             var ctdata='';             $('#ctid').find('option').not(':first').remove();             $('#ctid').removeclass('chosen-select');             $('.chosen-select').chosen();             if(obj.isdata==1){                 ctdata=obj.cid;                 $.each(ctdata, function(idx, o) {                      $("#ctid").append("<option value="+o.city_id+">"+o.city_name+"</option>");                     //$("#ctchoosen > ul").append('<li class="active-result" data-option-array-index='+this.city_id+'>'+this.city_name+'</li>');                 })                 $('#ctid').addclass('chosen-select');                 $('.chosen-select').chosen();             }         })       } 

when user selects option in country select list, cities appending , need cities in select box/auto created list item elements update.

i can reset select box unable reset auto created list item elements when user selecting new country cities belongs not displaying user. using php database operations.

chosen offers event can triggered. the documentation:

  • updating chosen dynamically

    if need update options in select field , want chosen pick changes, you'll need trigger "chosen:updated" event on field. chosen re-build based on updated content.

    $("#form_field").trigger("chosen:updated"); 

    1

when city list has options, instead of calling

$('.chosen-select').chosen(); 

after adding cities, trigger updated event on it:

$('#ctid').trigger("chosen:updated"); 

see demonstration of below.

//track whether options have been added list   var cityoptionsadded = false;    function setcountry() {    var conval = document.getelementbyid('conid');    var selectval = '';    if (conval.selectedindex == -1) {      return null;    } else {      selectval = conval.options[conval.selectedindex].text;      $("#popupcountry").removeclass("in");    }    $('#bordercon').css('border', '');    var url = conval.options[conval.selectedindex].value + ".json";    $.post(url, function(obj) {      var ctdata = '';      $('#ctid').find('option').not(':first').remove();      $('#ctid').removeclass('chosen-select');      chosenselect = $('.chosen-select').chosen();      if (obj.isdata == 1) {        ctdata = obj.cid;        $.each(ctdata, function(idx, o) {            $("#ctid").append("<option value=" + o.city_id + ">" + o.city_name + "</option>");        });        if (cityoptionsadded) { //subsequent addition of cities list          $('#ctid').trigger("chosen:updated");        } else { //first time adding cities list          cityoptionsadded = true;          $('#ctid').addclass('chosen-select');          chosenselect = $('.chosen-select').chosen();        }      }    });  }  /**override jquery ajax sandbox    because real ajax requests disabled     in environment  */  $.post = function(url, callback) {    var data;    if ($('#conid').val() == 'ca') {      data = {        "isdata": true,        "cid": [{          "city_id": "ot",          "city_name": "ottowa"        }, {          "city_id": "va",          "city_name": "vancouver"        }]      };    }    if ($('#conid').val() == 'se') {      data = {        "isdata": true,        "cid": [{          "city_id": "st",          "city_name": "stockholm"        }, {          "city_id": "lu",          "city_name": "lund"        }]      };    }    callback(data);  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.7.0/chosen.jquery.min.js"></script>  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.7.0/chosen.min.css" />  <div class="popover-content">    <p>      <select class="chosen-select text-left" style="width:100%;" onchange="setcountry()" id="conid">          <option value="" selected>select country</option>          <option value="ca">canada</option>          <option value="se">sweden</option>        </select>    </p>  </div>  <div id="popupcity" class="popover" style="width:270px">    <div class="arrow"></div>    <h3 class="popover-title">select city</h3>    <div class="popover-content" id="ctchoosen">      <p>        <select class="text-left" style="width:100%;" id="ctid">            <option value="" selected>select city</option>          </select>      </p>    </div>  </div>


1https://harvesthq.github.io/chosen/#change-update-events


Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -