抱歉,我刚刚进入JS功能,但我们的页面上有一个搜索框,当调用时(我认为它使用ajax)它会将搜索数据填充到div中。我们以前使用jquery实时搜索。
在搜索查询中,我们有许多具有类的链接,此类与jquery模式相关。旧版本过去使用模糊功能。我正在尝试将功能移植到新搜索。
我们曾经拥有......
jquery搜索:
<form method="post" action="<? echo constructurl($platform_name,"https") ?>/process/feedbackcreateuser" enctype="multipart/form-data" class="form-right">
<input name="q" type="text" placeholder="Enter your idea or feedback ... " name="title..." style="width:100%; " value="<? echo $captchamessage ?>">
<div id="jquery-live-search" style="display:none;"></div>
<script src="<? echo $asset_url ?>/3rdparty/feedback/jquery.liveSearch.js"></script>
<script>
jQuery('input[name="q"]').liveSearch({url: '<? echo constructurl($platform_name,"https")?>/process/searchfeedbackuser/?c=<? echo $id ?>&q='});
</script>
</form>
使它成功的JS:
<script type="text/javascript"> <!-- this allows search results to have same js functions -->
$(document).ready(function() {
$("input[name='q']").blur(function() {
$("div#jquery-live-search [rel='clickover']").clickover({ html : true} );
$("div#jquery-live-search input, div#jquery-live-search textarea").placeholder();
$("div#jquery-live-search .dialog-iframe-card").dialog2IFrame( {
height:900,
closeOnOverlayClick: true,
closeOnEscape: true,
removeOnClose: true,
showCloseHandle: true,
});
$("div#jquery-live-search .dialog-iframe-report").dialog2IFrame( {
height:900,
closeOnOverlayClick: false,
closeOnEscape: true,
removeOnClose: true,
showCloseHandle: true,
});
});
});
</script>
我们现在拥有......
JS搜索(不再是jQuery)
<script type="text/javascript">
$(document).ready(function() {
$('#form form').submit(function(){
$('#content').load('<? echo constructurl($platform_name,"https")?>/process/searchfeedback/?c=<? echo $id ?>', { 'q': $('input[name="query"]').val()}).slideDown('500')
return false;
});
});
$(function(){
$('form').each(function () {
var thisform = $(this);
thisform.prepend(thisform.find('button.default').clone().css({
position: 'absolute',
left: '-999px',
top: '-999px',
height: 0,
width: 0
}));
});
});
</script>
<div id="form">
<form class="form">
<div class="input-group" style="margin-bottom:10px">
<input type="text" name="query" placeholder="Enter your idea or feedback ... " class="feedback-search validate[required] form-control search-main" >
<span class="input-group-btn">
<input type="submit" name="submit" value="Go!" class="btn btn-search">
</span>
</div>
</div></form>
<form method="post" action="<? echo constructurl($platform_name,"https") ?>/process/feedbackcreate" enctype="multipart/form-data" class="form" class="form-right">
</form>
<div id="content">
</div>
我一直在尝试类似的东西而没有运气。
<script type="text/javascript"> <!-- this allows search results to have same js functions -->
$(document).ready(function() {
$("#form").blur(function() {
$("div#content [rel='clickover']").clickover({ html : true} );
$("div#content input, div#jquery-live-search textarea").placeholder();
$("div#content .dialog-iframe-card").dialog2IFrame( {
height:900,
closeOnOverlayClick: true,
closeOnEscape: true,
removeOnClose: true,
showCloseHandle: true,
});
$("div#content .dialog-iframe-report").dialog2IFrame( {
height:900,
closeOnOverlayClick: false,
closeOnEscape: true,
removeOnClose: true,
showCloseHandle: true,
});
});
});
</script>
答案 0 :(得分:0)
您的HTML存在问题:
在开始新标记之前,您似乎根本没有关闭<form class="form">
标记。所以你有嵌套的表格,这是不可能发生的,所以你应该先修复它,因为$('form').each(function () {
最不可能为你做任何事情。不完全确定为什么你会将克隆按钮添加到宽度= 0和高度= 0的表单中,并且页面上没有位置。有点这样做很尴尬。为什么不使用相同的按钮开始?为什么要克隆它?
此外,您还没有在此行的末尾添加分号:
$('#content').load('<? echo constructurl($platform_name,"https")?>/process/searchfeedback/?c=<? echo $id ?>', { 'q': $('input[name="query"]').val()}).slideDown('500')
会产生语法错误。
您应该在浏览器中打开javascript错误报告,以便能够查看所有jQuery / javascript错误并逐一更正这些错误。在你这样做之后,它甚至可以自我修复。
另外,一定要加载jQuery,因为你仍然在编码中使用它...这是一个很好的CDN供jQuery使用:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
答案 1 :(得分:0)
我无法想出这个,所以我只是将工作的JS调用弹出到动态内容的页面中,并且它有效!