Как установить параметры списка выбора с помощью jQuery 3.3.1 - PullRequest
0 голосов
/ 13 февраля 2019

Я попробовал большинство ответов на предыдущие вопросы здесь, но я не могу заставить jQuery установить опцию в списке выбора в качестве выбранной.Я получаю и повторяю текст каждого варианта.Использование jQuery 3.3.1.

HTML:

<select id="ddlRole" class="ddlRole" style="width:810px" multiple  size="6">
   <option value="-1">--DeSelect--</option>
   <option value="1">Administrator</option>
   <option value="2">Manager</option>
   <option value="3">User</option>
</select>

Код:

$('#ddlrole option').each(function ()                               
{
    //alert(" option text =" + this.text);
    for (i = 1; i < splitdata.length; i++)
    {
        if (splitdata[i] == $(this).text())
        {
            //this.prop("selected",true);
            //$(this).prop('selected', true);                                       $(this).attr("selected", "selected");
            alert("Searched text is found");
        }
    }
});

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Если значения вашего выпадающего меню также совпадают, почему бы не попробовать передать массив в метод val()?Потому что он сделает эту работу за вас!

HTML:

<select id="ddlRole" class="ddlRole" style="width:810px" multiple  size="6">
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
  <option value="D">D</option>
  <option value="E">E</option>
  <option value="F">F</option>
  <option value="G">G</option>
</select>

jQuery:

var splitdata = ['B', 'C', 'E'];
$('#ddlRole').val(splitdata); 

JsFiddle

Кроме того, я хотел бы указать на несколько вещей:

  1. Идентификационное имя вашего выпадающего элемента - ddlRole, тогда как в коде jQuery вы используете #ddlrole.

  2. Ваш цикл FOR начинается с 1.Но в массиве первый элемент начинается с 0-го индекса.

0 голосов
/ 13 февраля 2019

Нет опций, указанных в выбранном вами теге

    <select id="ddlRole" class="ddlRole" style="width:810px" multiple  size="6"></select>

Более того, что такое переменная splitdata?оно не определено

РЕДАКТИРОВАТЬ:

Попробуйте:

splitdata = ["Administrator","Manager","User"]

$('#ddlRole option').each(function ()                               
{
        console.log(" option text =");
        for (i = 0; i < splitdata.length; i++)
        {
            if (splitdata[i] == $(this).text())
            { 
             $(this).attr("selected", "selected");
            }
        }
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...