使用JS模糊将焦点转移到div



对不起,我刚开始学习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调用弹出到动态内容的页面中,它就工作了!

相关内容

  • 没有找到相关文章

最新更新