使用JS模糊将焦点带到div

时间:2013-08-09 07:41:59

标签: javascript jquery modal-dialog blur

抱歉,我刚刚进入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>

2 个答案:

答案 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调用弹出到动态内容的页面中,并且它有效!