Доброго времени суток помогите разобраться с common.js /* Реализация поиска в форме по кнопке ********************/ $('#search input[name=\'search\']').parent().find('button').on('click', function() { url = $('base').attr('href') + 'index.php?route=product/search'; var value = $('header input[name=\'search\']').val(); if (value) { url += '&search=' + encodeURIComponent(value); } location = url; }); /* Обработка нажатия Enter в форме *********************************/ $('#search input[name=\'search\']').on('keydown', function(e) { if (e.keyCode == 13) { var value = $('header input[name=\'search\']').val(); if (value) { url = $('base').attr('href') + 'index.php?route=product/search'; url += '&search=' + encodeURIComponent(value); } location = url; } }); до выделенного красным работает, а после я так понимаю здесь идет обработка нажатия Enter не работает сам /common/search.tpl выглядит так: <form class="search-form closed"> <div class="container"> <div class="close-search"><i class="icon-delete"></i></div> <div id="search" class="form-group"> <input type="text" name="search" value="<?php echo $search; ?>" placeholder="<?php echo $text_search; ?>" class="form-control input-lg"> <button type="button"><i class="icon-magnifier"></i></button> </div > </div> </form> при нажатии Enter в строке поиска ссылка выглядит так: ruopencart/index.php?search=imac при нажатии кнопки поиска так: ruopencart/index.php?route=product/search&search=imac что логично те. url+='&search=' + encodeURIComponent(value) Где я я ошибся???
Код: if (value) { url += '&search=' + encodeURIComponent(value); } Код: if (value) { url = $('base').attr('href') + 'index.php?route=product/search'; url += '&search=' + encodeURIComponent(value); } Игра. Найди одно отличие!! И почему бы просто не посмотреть как работает в нормальном common.js из сборки??
в сборке $('#search input[name=\'search\']').parent().find('button').on('click', function() { url = $('base').attr('href') + 'index.php?route=product/search'; var value = $('header input[name=\'search\']').val(); if (value) { url += '&search=' + encodeURIComponent(value); } location = url; }); $('#search input[name=\'search\']').on('keydown', function(e) { if (e.keyCode == 13) { $('header input[name=\'search\']').parent().find('button').trigger('click'); } }); Красный блок отвечает за обработку нажатия энтер - пробовал не работет
а как же у всех работает )) Может у вас какие то конфликты со скриптами или еще что то. Как можно помочь по выше указанному коду, который у вас не работает , а у всех работает ?? Выкладывайте свой сайт в инет и там уже видно будет...
если в следующей строчке 'click' заменить 'keydown' $('#search input[name=\'search\']').parent().find('button').on('keydown', function() { то происходит что после выделения кнопки и нажатия Enter скрипт срабатывает так как надо. по нажатию Enter в поле ввода скрипт не срабатывает
у вас сначала происходит вызов как положено, аж 3 раза , а вот в конце неправильный запрос. Поищите по шаблону и по скриптам что то типа ?search=
еще у вас есть ошибки в верстке. Два раза встречаются закрывающий тег </body></html> а это тоже может давать всякие глюки
такого ни где не присутствует и такого тоже ==13 за исключением моих файлов может где то действительно конфликт скриптов... Решил писать все с чистого листа т.е. нужна функция добавляю не нужна и зачем она тогда нужна хотя заметил если не оборачивать <form>...</form> родной скрипт или мой то все работает как только появляется <form>...</form> кнопка работает "ентер" не работает....