Не удалось установить значение параметра выбора с помощью 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'));
       });
   });

Что мне нужно, так это то, что когда пользователь выбирает любой текст, его значение будет показано пользователю. В моем коде этого не происходит.

какая разница между con_code и dial_code? вы выбираете con_code 'IN', но помещаете dial_code в качестве значений параметров.

simonecosci 15.11.2018 12:16
+91 - это код набора для IN.
user5443928 15.11.2018 12:17

Вы можете это исправить?

user5443928 15.11.2018 12:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
773
2

Ответы 2

1-й: небольшая оптимизация вашего JS:

$('#countryCode option:selected').html($(this).val());// already changed onload

Теперь, как выбрать вариант с помощью JS:

$(function() {
  var $sel = $('.chosen-select');
  $('#exists').click(function() {
    $sel.val('option3');
    console.info($sel.val());
  });
  $('#disabled').click(function() {
    $sel.val('option2');
    console.info($sel.val());
  });
  $('#noExist').click(function() {
    $sel.val('option5');
    console.info($sel.val());
  });
  $sel.on('change', function() {
    console.info($sel.val());
  });
});
<script src = "https://code.jquery.com/jquery-3.3.1.min.js"></script>

<button id = "exists">Select 3rd option</button>
<button id = "disabled">Select disabled option</button>
<button id = "noExist">Select inexistant option</button>
<select class = "chosen-select">
  <option>option1</option>
  <option disabled>option2</option>
  <option>option3</option>
  <option selected>option4</option>
</select>
<button onclick = "console.clear();">X</button>

Как видите, можно выбрать только существующие и не отключенные параметры.

О, хорошо, понятно. Редактирование ... Готово! $selявляется$('.chosen-select')

Jean-Marc Zimmer 15.11.2018 12:35

должно получиться примерно так:

<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>

Здесь я использую класс class = "chosen-select", который создает проблему. Можете ли вы соответственно обновить.

user5443928 15.11.2018 12:32

Вы добавляете один настраиваемый класс. chosen-select - это один плагин. Вы можете проверить это с помощью этого плагина.

user5443928 15.11.2018 12:41

Другие вопросы по теме