У меня проблема. Мне нужно установить значение выбора как текст в поле 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'));
});
});
Что мне нужно, так это то, что когда пользователь выбирает любой текст, его значение будет показано пользователю. В моем коде этого не происходит.
+91 - это код набора для IN.
Вы можете это исправить?






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')
должно получиться примерно так:
<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", который создает проблему. Можете ли вы соответственно обновить.
Вы добавляете один настраиваемый класс. chosen-select - это один плагин. Вы можете проверить это с помощью этого плагина.
какая разница между con_code и dial_code? вы выбираете con_code 'IN', но помещаете dial_code в качестве значений параметров.