我正在通过更改 OpenCart 2.0.2.0 的默认模板代码来设计自己的模板。重新定位“搜索”字段后,它不再起作用:按 Enter 键时不会提交,并且单击表单中的搜索按钮时不会在 URL 中提交搜索值(但表单会提交)。
为了尝试找出重新定位输入字段时出现的问题,我在 WampSever 上重新安装了 OpenCart,并且在不更改任何其他内容的情况下,我将输入字段移至主导航,就在类别之后UL——只需复制打印搜索模板的 PHP 标签即可:
<?php echo $search; ?>
没有别的了。表单在按键盘上的 Enter 时提交,并在单击搜索按钮时提交,但搜索参数不再附加到 URL,例如
http://localhost/opencart/index.php?route=product/search&search=macbook
我需要您的帮助来找出发生这种情况的原因以及如何在不失去其功能的情况下移动搜索字段。我想这与 Javascript 相关,但不确定如何。
最佳答案
回答我自己的问题: 是的,它与 Javascript 相关。由于搜索输入字段没有包装在 中,为了提交它并获取搜索查询,编写了两个 jQuery 函数(在catalog/view/javascript/common.js 中,第64-81 行)。 这些函数通过首先引用输入最初所在的位置来获取搜索输入值:
[第 68 行]
var value = $('header input[name=\'search\']').val();
[第 79 行]
$('header input[name=\'search\']').parent().find('button').trigger('click');
为了使其正常工作,我必须将“header”的两个实例替换为菜单的 ID:
var value = $('#menu input[name=\'search\']').val();
然后排序! 希望这能帮助像我这样的其他 OpenCart 初学者:)
关于javascript - 开放购物车 : Search no longer works after repositioning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30260000/