我有一个搜索表单,我试图让它在页面底部输出结果而不重新加载。
Type First Name 我希望在单击按钮时使用Ajax调用另一个脚本,在下面显示搜索结果。 我一直收到错误:“未捕获的ReferenceError:未在HTMLButtonElement.onclick上定义searchoutput 这是我的javascript(使用jquery): $( document ).ready(function() { function searchoutput() { if($(".search-field").val().length > 5) { //only shows results when more than 5 characters have been entered var search = $(".search-field").val(); var update = $(".result"); var goal = 0; $.get("query-include.php" , {search: search, goal: goal}) .done(function( data ) { update.empty(); update.append(data); $(this).remove(); }); }; } $( ".search-field" ).keydown(function() { var update =$(".results"); update.empty(); }); }); 我检查了其他post,花了很长时间试图自己解决问题。 奇怪的是,如果我为“keyup”添加一个事件监听器,以便运行与用户类型相同的函数searchoutput: var searchfield = document.getElementById("search"); searchfield.addEventListener("keyup", searchoutput); 然后我没有得到ReferenceError并且脚本运行正常..我只在按钮点击时得到function问题。 这是一个范围问题 – searchOutput是在$(document).ready()函数的范围内定义的。 您可以尝试在该代码之前为searchOutput声明一个var,然后将其分配给函数,如下所示: var searchOutput; $( document ).ready(function() { searchOutput = function () { if($(".search-field").val().length > 5) { //etc. 我在searchoutput()的位置添加了一个eventListener; $( document ).ready(function() { $('.submit').addEventListener('click', function(){ if($(".search-field").val().length > 5) { //only shows results when more than 5 characters have been entered var search = $(".search-field").val(); var update = $(".result"); var goal = 0; $.get("query-include.php" , {search: search, goal: goal}) .done(function( data ) { update.empty(); update.append(data); $(this).remove(); }); } }); $( ".search-field" ).keydown(function() { var update =$(".results"); update.empty(); }); }); Jquery Accordion – 使用锚点从外部和内部链接打开特定面板 然后jQuery AddClass删除一个类 如何使用拖动使对象旋转,如何在原点周围获得旋转点使用sin或cos?jQuery泄漏解决了,但为什么呢?我可以从另一个调用一个js文件。如何通过JQuery ajaxSend事件覆盖成功函数更改背景图片onClick如何动态设置HTML lang属性?PHP使用includes在页面上设置活动链接Laravel 5.2和ajax无法加载资源:服务器响应状态为500无法利用javascript / jquery对输入中的第一个单词进行大写 Go! Interesting Posts 隐藏和显示基于Cookie值的内容使用updateFromJS会在应该添加值时替换它们代码正在小提琴上工作但不在网站上在JQuery中执行URL哈希/历史记录的最佳库是什么?使用Javascript显示权重如何避免或停止多个ajax请求将jsTree节点设置为“未确定”状态jQuery UI:TypeError:$(…)。accordion不是函数jQuery Mobile页面丢失了JavaScript文件(jquery / js) – 在keyup上从字段获取文本,但是有进一步输入的延迟
Type First Name
我希望在单击按钮时使用Ajax调用另一个脚本,在下面显示搜索结果。 我一直收到错误:“未捕获的ReferenceError:未在HTMLButtonElement.onclick上定义searchoutput
这是我的javascript(使用jquery):
$( document ).ready(function() { function searchoutput() { if($(".search-field").val().length > 5) { //only shows results when more than 5 characters have been entered var search = $(".search-field").val(); var update = $(".result"); var goal = 0; $.get("query-include.php" , {search: search, goal: goal}) .done(function( data ) { update.empty(); update.append(data); $(this).remove(); }); }; } $( ".search-field" ).keydown(function() { var update =$(".results"); update.empty(); }); });
我检查了其他post,花了很长时间试图自己解决问题。 奇怪的是,如果我为“keyup”添加一个事件监听器,以便运行与用户类型相同的函数searchoutput:
var searchfield = document.getElementById("search"); searchfield.addEventListener("keyup", searchoutput);
然后我没有得到ReferenceError并且脚本运行正常..我只在按钮点击时得到function问题。
这是一个范围问题 – searchOutput是在$(document).ready()函数的范围内定义的。 您可以尝试在该代码之前为searchOutput声明一个var,然后将其分配给函数,如下所示:
searchOutput
$(document).ready()
var searchOutput; $( document ).ready(function() { searchOutput = function () { if($(".search-field").val().length > 5) { //etc.
我在searchoutput()的位置添加了一个eventListener;
$( document ).ready(function() { $('.submit').addEventListener('click', function(){ if($(".search-field").val().length > 5) { //only shows results when more than 5 characters have been entered var search = $(".search-field").val(); var update = $(".result"); var goal = 0; $.get("query-include.php" , {search: search, goal: goal}) .done(function( data ) { update.empty(); update.append(data); $(this).remove(); }); } }); $( ".search-field" ).keydown(function() { var update =$(".results"); update.empty(); }); });