对不起,我刚开始学习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>
您的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>
我想不出这个,所以我只是把正在工作的JS调用弹出到动态内容的页面中,它就工作了!