Выберите опцию в jquery по тексту - PullRequest
1 голос
/ 14 марта 2020

Это должно быть довольно простой задачей, но все решения онлайн никогда не работали для меня.

У меня есть массив, который содержит типы займов:

var arrLoanType = {
        1:"Regular Loan",
        2:"Emergency Loan",
        3:"Special Loan",
        ...}

Я сравниваю вышеупомянутое с записями в базе данных, так что существующие в базе данных удаляются из массива.

Я перебрал их через код ниже:

$.each(arrLoanType, function(index, value){
    $("#loanType").append("<option value='"+index+"'>"+value+"</option>");
});

Теперь к вопросу, что Я хочу, чтобы это было выбрано поле по умолчанию на основе текста опции. Это мой код:

$('#loanType option').filter(function () { 
   return $(this).text() == selectedLoan; 
}).attr('selected','selected');

, где selectedLoan из скрытого поля ввода var selectedLoan = $("#loanSelected").val();

Это просто не работает. Вот как выглядит моя HTML структура кода после генерации $.each:

<select name="" id="loanType" class="form-control" required="">
    <option value="" selected="" disabled="" hidden="">Select Loan Type...</option>
    <option value="1">Regular Loan</option>
    <option value="2">Emergency Loan</option>
    <option value="3">Special Loan</option>
...

Я уже пытался удалить атрибут "selected" в первом элементе, но он все еще не работает. Любая помощь будет оценена. Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 марта 2020

Вы можете выбрать значение по умолчанию для самого создания.

$.each(arrLoanType, function(index, value){
    if(value == selectedLoan)
        $("#loanType").append("<option value='"+index+"' selected>"+value+"</option>");
    else
        $("#loanType").append("<option value='"+index+"'>"+value+"</option>");
});

Если еще проверяет, текст равен выбранному кредиту или нет, и добавлять выбранный атрибут в самом создании, я думаю, что это решает вашу проблему

0 голосов
/ 14 марта 2020

Кажется, хорошо, пожалуйста, посмотрите. Любая ошибка в консоли? возможно, вы забыли включить jquery lib или нет внутри do c ready?

$(document).ready(function(e) {
  var arrLoanType = {
        1:"Regular Loan",
        2:"Emergency Loan",
        3:"Special Loan"}

  $.each(arrLoanType, function(index, value){
     $("#loanType").append("<option value='"+index+"'>"+value+"</option>");
  });

  $('#loanType option').filter(function () { 
     return $(this).text() == $("#loanSelected").val(); 
  }).attr('selected','selected');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<select name="" id="loanType" class="form-control" required=""></select>
<input id ="loanSelected" value="Special Loan" type="hidden">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...