首页 > 解决方案 > 无法使用 jquery 和 PHP 设置选择选项值

问题描述

我有一个问题。我需要select使用 jQuery 将选择值设置为框中的文本,但无法做到。

<select name="countryCode" class="chosen-select" id="countryCode" required>
  <?php foreach ($countrydata as $key => $value) {
     if ($value['con_code']=='IN') {
          $select='selected';
      }else{
          $select='';
     }
 ?>
  <option data-text="<?php echo $value['country']; ?>" value="<?php echo $value['dial_code']; ?>" <?php echo $select; ?>><?php echo $value['country']; ?></option>
 <?php } ?>
</select>

我的脚本部分如下。

$('#countryCode').find(':selected').html($('#countryCode').find(':selected').attr('value')); // already changed onload   
 $('#countryCode').on('change mouseleave', function () {
       $('#countryCode option').each(function () {
           $(this).html($(this).attr('data-text'));
       });
       $('#countryCode option:selected').html($('#countryCode option:selected').attr('value'));
       $(this).blur();
   });
   $('#countryCode').on('focus', function () {
       $('#countryCode option').each(function () {
           $(this).html($(this).attr('data-text'));
       });
   });

我需要的是,当用户选择任何文本时,它的值将显示给用户。在我的代码中,它不是这样发生的。

标签: phpjqueryjquery-chosen

解决方案


应该是这样的:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function(){
  $('#countryCode').on('change', function(){
    var val = $(this).val();
    $(this).find("option").each(function(){
      $(this).text($(this).attr("data-text"));
    });
    $(this).find(":selected").text(val);
  }).trigger("change");  
});
</script>
<select id="countryCode" class="chosen-select">
    <option data-text="A Text" value="A value">A Text</option>
    <option data-text="B Text" value="B value">B Text</option>
    <option data-text="C Text" value="C value" selected>C Text</option>
</select>


推荐阅读