Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.03.2018, 02:41
Профессор
Отправить личное сообщение для денис77447327 Посмотреть профиль Найти все сообщения от денис77447327
 
Регистрация: 03.09.2017
Сообщений: 172

выбор пункта меню из выпадающего списка
<select id="make" name="make">
    <option value="0"> ---------------------- </option>
    <option value="Mercedec">Mercedec</option>
    <option value="Mazda">Mazda</option>
    <option value="Audi">Audi</option>                                       
    </select>

пишу в консоле
$("#make [value='Mazda']").attr("selected", "selected");
выбирается пункт мазда но на странице ничего не меняется это как будто просто фокус на пункте происходит. нежели когда я в ручную мышкой выбираю пункт происходит запрос на сервер и сервер возвращает список мазд. как реализовать

Последний раз редактировалось денис77447327, 24.03.2018 в 02:43.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2018, 07:45
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

добавить в код выше
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2018, 09:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

денис77447327,
зачем attr?
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2018, 09:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('#make').val('Mazda')
Ответить с цитированием
  #5 (permalink)  
Старый 24.03.2018, 12:30
Профессор
Отправить личное сообщение для денис77447327 Посмотреть профиль Найти все сообщения от денис77447327
 
Регистрация: 03.09.2017
Сообщений: 172

Сообщение от j0hnik Посмотреть сообщение
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

добавить в код выше
а если сайт не мой доступа нет как в расширение тамперманки вставить хтмл код
Ответить с цитированием
  #6 (permalink)  
Старый 24.03.2018, 13:57
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

добавить в "шапку" скрипта
Код:
// @require https://code.jquery.com/jquery-3.3.1.min.js
или писать нативный код
document.querySelector('#make').value = "Mazda";
Ответить с цитированием
  #7 (permalink)  
Старый 24.03.2018, 15:06
Профессор
Отправить личное сообщение для денис77447327 Посмотреть профиль Найти все сообщения от денис77447327
 
Регистрация: 03.09.2017
Сообщений: 172

не работает. он выбирает этот пункт . но лишь визуально. запроса на сервер не происходит. и на странице ничего не меняется
Ответить с цитированием
  #8 (permalink)  
Старый 24.03.2018, 15:24
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

денис77447327,

это потому что событие change не происходит

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<select id="make" name="make">
    <option value="0"> ---------------------- </option>
    <option value="Mercedec">Mercedec</option>
    <option value="Mazda">Mazda</option>
    <option value="Audi">Audi</option>                                       
  </select>
	<script>

document.querySelector('#make').addEventListener('change', ()=>alert('Наступило событие change'));
setTimeout(()=>document.querySelector('#make').value = 'Mazda', 1000);
	</script>
</body>
</html>


вот наглядный пример
Ответить с цитированием
  #9 (permalink)  
Старый 24.03.2018, 15:28
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

document.querySelector('#make').value = 'Mazda'; // меняем селект
document.querySelector('#make').dispatchEvent(new Event("change")); // вызываем событие
Ответить с цитированием
  #10 (permalink)  
Старый 24.03.2018, 15:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<select id="make" name="make">
    <option value="0"> ---------------------- </option>
    <option value="Mercedec">Mercedec</option>
    <option value="Mazda">Mazda</option>
    <option value="Audi">Audi</option>                                      
</select>

<script>
$('#make').change(function() {
     //обработка события   
     alert(this.value)
});
//изменение значения    
$('#make').val('Mazda').trigger('change');
</script>


Изменение свойств объекта таких как selected должно производится метод .prop() JQ, а не .attr()
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Появление формы при выборе пункта выпадающего списка MadMaxZZZ Элементы интерфейса 27 08.07.2016 18:46
Замена стилей класса Павел Турченко Элементы интерфейса 9 30.10.2015 15:24
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59
Открыть слайд (раздел) текущего пункта меню Demath Элементы интерфейса 8 18.07.2012 02:49
Сокращение списка выпадающего меню. Predatorbbs Элементы интерфейса 3 22.11.2010 15:23