Подключение файла JQuery
Добрый день,
Подскажите пожалуйста почему у меня работает здесь норм. http://jsfiddle.net/o3wxs2m6/1/. Но когда делаю это в файле, то событие на кнопке не срабатывает. Подключаю так <script src="http://code.jquery.com/jquery-1.8.3.js">Код</script> P.S. И еще как избавиться от кнопки, чтобы событие срабатывало после выбора и данные добавлялись в url? Спасибо. |
|
Спасибо,
А с подключением файла у меня всё норм? Не работает |
Дело не в подключении JQ, а в том, что код (установка обработчиков) выполняется тогда, когда страница не загружена и DOM не готов. Для этого и существует метод, о котором по ссылке. Второй проблемой может быть старая версия JQ, а в коде при меняются методы более свежих версий (я не помню, что у вас там написано, это как пример).
|
Спасибо профессор. Теперь всё ясно
|
Пожалуйста помогите с вопросом. Как установить обработчик на оба Select? Поставил на onchange, в url ничего не меняется. На кнопке обработка на ура.
Спасибо. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <script src="http://code.jquery.com/jquery-latest.min.js"></script> $(document).ready(InitPage); function InitPage(){ $("p").text("Структура документа загружена и DOMik готов!"); } <p>Страница еще не готова</p> <form id="testform" action="get.php" method="GET"> <select name="sel1" onchange="alert(action);"> <option value="">Выберите</option> <option value="1">Пиво</option> <option value="2">Спирт</option> <option value="3">Лимонад</option> </select> <select name="sel2" onchange="alert(action);"> <option value="">Выберите</option> <option selected value="3">Колбаска</option> <option value="4">Мясо</option> <option value="5">Деньги</option> </select> </form> <input id="show" type="button" value="Показать"/> var inputs={}; $('form#testform select').each(function(){ getQuery(this); }); $('form#testform select').on('change',function(){ getQuery(this); }); $('#show').on('click',function(){ var action=$('form#testform').attr('action'); action+=$.param(inputs)?'?'+$.param(inputs):''; alert(action); }); function getQuery(el){ if($(el).val()!=''){ inputs[$(el).attr('name')]=$(el).val(); }else{ delete inputs[$(el).attr('name')]; } } |
<script src="https://code.jquery.com/jquery-latest.min.js"></script> <script> $(document).ready(InitPage); function InitPage() { var inputs={}; $('#testform select').each(function(){ getQuery(this); }); $('#testform select').on('change',function(){ getQuery(this); }); $('#show').on('click',function(){ var action=$('#testform').attr('action'); action+=$.param(inputs)?'?'+$.param(inputs):''; alert(action); }); function getQuery(el){ if($(el).val()!=''){ inputs[$(el).attr('name')]=$(el).val(); }else{ delete inputs[$(el).attr('name')]; } } } </script> <form id="testform" action="get.php" method="GET"> <select name="sel1" > <option value="">Выберите</option> <option value="1">Пиво</option> <option value="2">Спирт</option> <option value="3">Лимонад</option> </select> <select name="sel2" > <option value="">Выберите</option> <option selected value="3">Колбаска</option> <option value="4">Мясо</option> <option value="5">Деньги</option> </select> </form> <input id="show" type="button" value="Показать"/> |
Спасибо большое за ответ.
Но с кнопкой у меня тоже работает. Хотелось бы, чтобы кнопки не было и обработчик срабатывал при выборе двух select и адресная строка менялась и сохранялся выбор в зависимости от того, что выбираем. |
Зачем $('#testform select').each при наличии $('#testform select').on('change' ?
|
Вроде же должно работать без кнопки, почему-то никакой реакции при выборе.
Help!!!!!! Please!!!!!!! |
<script src="https://code.jquery.com/jquery-latest.min.js"></script> <script> $(document).ready(InitPage); function InitPage() { var inputs={}, actionResult = "", action = $('#testform').attr('action'); $('#testform select').each(function(){ getQuery(this); }); $('#testform select').on('change',function(){ getQuery(this); if(Object.keys(inputs).length == 2) result.innerText = action + actionResult; }); function getQuery(el){ if($(el).val()!=''){ inputs[$(el).attr('name')]=$(el).val(); actionResult = $.param(inputs)?'?'+$.param(inputs):''; }else{ delete inputs[$(el).attr('name')]; actionResult = ''; result.innerText = ''; } } } </script> <form id="testform" action="get.php" method="GET"> <select name="sel1" > <option value="">Выберите</option> <option value="1">Пиво</option> <option value="2">Спирт</option> <option value="3">Лимонад</option> </select> <select name="sel2" > <option value="">Выберите</option> <option selected value="3">Колбаска</option> <option value="4">Мясо</option> <option value="5">Деньги</option> </select> </form> <div id="result"></div> |
laimas,
Наверное, для начала |
Цитата:
|
Dilettante_Pro, да это какой-то бардак не понятно для чего. )
|
laimas,
Я в примере вообще form хотел убрать - чтобы уменьшить бардак, но потом не стал... А так просто писал про обработчики селектов. Показать возможности. |
Цитата:
|
Цитата:
|
Так я отправлял без JS, значения подставлялись в URL, но на странице выбор не сохранялся. Сбрасывает на первоначальное. К примеру - если у меня в селекте Черный(1), Белый(2), Красный(3). Я выбираю Красный, то строка добавляет value=3. Но на странице - остается Черный в селекте, а нужно, чтобы отображался в селекте Красный. И один чувак мне сказал - JS тебе в помощь.
Если я не туда иду, то направьте пожалуйста. |
Цитата:
Для этого либо на сервере анализируете выбор и возвращая страницу клиенту отмечаете выбранными опции с пришедшими параметрами, либо на клиенте посредством JS анализируете URL текущий, получая параметры запроса и отмечая соответствующие опции. А вот формирование запроса, как это вы делаете, это никчемное занятие. |
Спасибо за помощь. Много что узнал, хоть даже и это было никчемное занятие.
|
Вот прошел месяц и с трудом всё таки получилось сделать благодаря помощи Dilettante_Pro и laimas - за что огромное спасибо.
Но изучение на этом не заканчивается и чтобы не создавать новую тему пишу здесь. <select name="sel1" > <option value="">Выберите</option> <option value="1">Пиво</option> <option value="2">Спирт</option> <option value="3">Лимонад</option> </select> <select name="sel2" > <option value="">Выберите</option> <option value="3">Колбаска</option> <option value="4">Мясо</option> <option value="5">Деньги</option> </select> Строка будет такой http://site.ru/get2.php?sel1=2&sel2=5 Все данные будут хранится в базе MySQL. Подскажите пожалуйста если таблица будет выглядеть так, это норм? Что-то моё внутреннее чувство подсказывает, что не так. Спасибо. id_sel1 / sel1 / id_sel2 / sel2 1 / Пиво / 3 / Колбаска 2 / Спирт /4 /Мясо 3 / Лимонад / 5 / Деньги |
Цитата:
|
Часовой пояс GMT +3, время: 10:52. |