Получение имени массива из тега <select>

152
05 июня 2019, 13:30

Есть раскрывающийся список:

<select id='dropDown' onchange='somethingDoer(this);'>
    <option value='0' arrayType='companies'>ООО "Рога и Копыта"</option>
    <option value='1' arrayType='companies'>ООО "Ромашка"</option>
    <option value='2' arrayType='companies'>ЗАО "Вектор"</option>
    <option value='0' arrayType='personas'>Иванов И.И.</option>
    <option value='1' arrayType='personas'>Петров П.П.</option>
    <option value='2' arrayType='personas'>Сидоров С.С.</option>
</select>

Список составлен из двух массивов данных "companies" и "personas". Мне хотелось бы, чтобы при выборе опции из выпадающего списка в функцию somethingDoer(this); передавалось не только значение value 0-2, т.е. порядковый номер записи внутри массива, но и название самого массива, чтобы функция смогла обратиться к нему напрямую. Как это реализовать, либо если конструкция некорректная, как нужно ее переписать, чтобы получить желаемый результат?

Answer 1

Вы наверно хотите что-то подобное:

function somethingDoer(dropDown) { 
    var option = dropDown.options[dropDown.selectedIndex]; 
    console.log(option.value, option.getAttribute('arrayType')); 
}
<select id='dropDown' onchange="somethingDoer(this)"> 
    <option value='0' arrayType='companies'>ООО "Рога и Копыта"</option> 
    <option value='1' arrayType='companies'>ООО "Ромашка"</option> 
    <option value='2' arrayType='companies'>ЗАО "Вектор"</option> 
    <option value='0' arrayType='personas'>Иванов И.И.</option> 
    <option value='1' arrayType='personas'>Петров П.П.</option> 
    <option value='2' arrayType='personas'>Сидоров С.С.</option> 
</select>

Answer 2

function somethingDoer(e){ 
  console.log(e.value +':'+ e.options[e.selectedIndex].getAttribute("arrayType")); 
}
<select id='dropDown' onchange='somethingDoer(this);'> 
    <option value='0' arrayType='companies'>ООО "Рога и Копыта"</option> 
    <option value='1' arrayType='companies'>ООО "Ромашка"</option> 
    <option value='2' arrayType='companies'>ЗАО "Вектор"</option> 
    <option value='0' arrayType='personas'>Иванов И.И.</option> 
    <option value='1' arrayType='personas'>Петров П.П.</option> 
    <option value='2' arrayType='personas'>Сидоров С.С.</option> 
</select>

READ ALSO
Функция для подсчёта слайдов slick

Функция для подсчёта слайдов slick

Как сделать данную функцию подсчёта слайдов универсальной(если на странице будут несколько слайдеров), чтобы просто пользоваться меняя...

154
Вылетает приложение на моменте InitializeComponent() Xamarin

Вылетает приложение на моменте InitializeComponent() Xamarin

Здравствуйтею Хотел в приложении сделать добавление человека и вывод его в listview, однако происходит краш вот тут :

133