Как получить выбранное значение в JqueryUI Selectmenu из функции Изменить? - PullRequest
0 голосов
/ 02 июля 2019

Мне нужно получить значение выбранного параметра в JqueryUI SelectMenu из события изменения, но я не могу получить значение из функции Изменить или функции выбора, как это сделать /

  var iSelectedValue;
  var map="";
    $("#drpRegionName").selectmenu({
        change: function (event, ui) {

           iSelectedValue = ui.item.value;

            console.log(iSelectedValue); //Working
        },
        select: function (event, ui) {
            map = $(this).val();
            console.log(map); //working
        }
    });
    console.log(map); // not working
    console.log($(iSelectedValue); // not working

изфункция его не определена.

1 Ответ

0 голосов
/ 02 июля 2019

Рассмотрим следующий пример, основанный на https://jqueryui.com/selectmenu/#product-selection

$(function() {
  var iSelectedValue;
  var map = "";

  function getValues(p) {
    var arr = [];
    $("select", p).each(function(i, el) {
      arr.push({
        id: $(el).attr("id"),
        value: $(el).val()
      });
    });
    return arr;
  }

  $("fieldset select").selectmenu({
    change: function(e, ui) {
      iSelectedValue = getValues($("fieldset"));
      console.log(iSelectedValue);
    }
  });

  iSelectedValue = getValues($("fieldset"));
  console.log(iSelectedValue);
});
fieldset {
  border: 0;
}

label {
  display: block;
  margin: 30px 0 0 0;
}

.overflow {
  height: 200px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<fieldset>
  <label for="speed">Select a speed</label>
  <select name="speed" id="speed">
    <option>Slower</option>
    <option>Slow</option>
    <option selected="selected">Medium</option>
    <option>Fast</option>
    <option>Faster</option>
  </select>

  <label for="files">Select a file</label>
  <select name="files" id="files">
    <optgroup label="Scripts">
      <option value="jquery">jQuery.js</option>
      <option value="jqueryui">ui.jQuery.js</option>
    </optgroup>
    <optgroup label="Other files">
      <option value="somefile">Some unknown file</option>
      <option value="someotherfile">Some other file with a very long option text</option>
    </optgroup>
  </select>

  <label for="number">Select a number</label>
  <select name="number" id="number">
    <option>1</option>
    <option selected="selected">2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
    <option>13</option>
    <option>14</option>
    <option>15</option>
    <option>16</option>
    <option>17</option>
    <option>18</option>
    <option>19</option>
  </select>

  <label for="salutation">Select a title</label>
  <select name="salutation" id="salutation">
    <option disabled selected>Please pick one</option>
    <option>Mr.</option>
    <option>Mrs.</option>
    <option>Dr.</option>
    <option>Prof.</option>
    <option>Other</option>
  </select>
</fieldset>

Здесь вы можете увидеть, как мы можем обновить массив, когда страница загружается, а затем в любое время происходит событие change для одного из элементов selectMenu.

Надеюсь, это поможет.

...