jQuery无法进入下一页

问题描述

我有jquery,但它不会转到下一页,它总是显示图像并等待,从不进行下一页HTML代码
<div id=\"toHide\" class=\"pb-text-align-center\">
    <img style=\"display: inline\" src=\"img/load.gif\" />
    <form wicket:id=\"safeForm\" class=\"clearfix\">
        <input type=\"hidden\" wicket:id=\"submitted\" value=\"false\" />
    </form>
</div>
HTML视图源:
<SCRIPT type=\"text/javascript\">  
   var $ = jQuery.noConflict();  
   $(\'.toHide\').show().doTimeout(100,function() { 
   $(\'.toHide\').find(\'safeForma3\').submit();});
</SCRIPT>
检票口代码
static private class SafeSubmitBehavIoUr extends AbstractBehavior{
      public void onRendered( Component component ) {
          super.onRendered( component );      
          StringBuffer buffer = new StringBuffer(200);
          buffer.append(\"<script type=\\\"text/javascript\\\" >\\n\");
          buffer.append(\"var $ = jQuery.noConflict();\\n \"); 
          buffer.append(\" $(\'.toHide\').show().doTimeout(100,function() {  $(\'.toHide\').find(\'\");
          buffer.append(component.getMarkupId()).append(\"\').submit();});\\n</script>\");
          component.getResponse().write(buffer);
        }  
  } 
      buffer.append(component.getMarkupId()).append(\"\').submit();});\\n</script>\");
我已经尝试过:$(\'。toHide \')。find(\'form \')。submit();});。但是还是没用。 将$(\'。toHide \')逼至$(\'#toHide \')之后,页面将移至下一页,但动画未在IE6 / 7中发生,在FF中可以正常工作。     

解决方法

我认为您应该尝试这样做:
$(\'#toHide\').find(\'form\').submit();
或者,如果表单上有ID(我对Wicket不熟悉),则可以使用:
$(\'#safeForm\').submit();
ID选择器使用\'#\'字符,而不是\'。\',这是类选择器前缀。     ,\“ toHide \”
<div>
具有该字符串作为其id值,而不是其类,因此您需要:
 $(\'#toHide\')
选择器“ .toHide \”将查找带有“ toHide \”作为元素的元素,因此根本找不到您的
<div>
。 要查找表格,您将使用
 $(\'#toHide form\').submit();
    ,您的HTML中没有名为\'safeForm15 \'的ID,这是setTimeout试图选择的ID。实际上,表单具有ID命名空间,我认为这是非法的。 无论如何,快速的解决方法是从\'toHide \'提示,并摆脱component.getMarkupId位。
$(\'#toHide\').find(\'form\').submit();
添加: 您需要更改此:
  buffer.append(\"  setTimeout(function(){ $(\\\"#\").append(component.getMarkupId()).append(\"\\\").submit()},100);\\n\"); 
对此:
  buffer.append(\"  setTimeout(function(){$(\'#toHide\').find(\'form\').submit();},100);\\n\"); 
    ,这是IE的问题,如果您有一个不可见的GIF,然后将其设置为可见,则动画不起作用。 最好的办法是只使用一个空白图像标签,例如
<img src=\'\' />
,然后在要使其可见时,将
src
设置为正确的路径,即
<img src=\'AnimatingImg.gif\' />
。 如果您这样做,它应该可以工作。 编辑 您可以这样做:
<SCRIPT type=\"text/javascript\">  
   var $ = jQuery.noConflict();       
   $(\'#toHide\').show();
   $(\'#loadingImg\').attr(\'src\',\'img/load.gif\');
   setTimeout(function() {
       $(\'#toHide\').find(\'safeForma3\').submit();
   },100);
</SCRIPT>
html代码:
<div id=\"toHide\" class=\"pb-text-align-center\">
    <img id=\"loadingImg\" style=\"display:inline\" src=\"\" />
    <form wicket:id=\"safeForm\" class=\"clearfix\">
        <input type=\"hidden\" wicket:id=\"submitted\" value=\"false\" />
    </form>
</div>
尝试一下,可能需要一点摆弄。     ,其他人提到您的选择器存在问题。 但是,此代码在两个
script
标记之间也显示为裸露。这意味着它们将在解析后立即执行。这意味着它们可以在整个DOM加载之前执行,从而使其无效。 您需要使用以下内容:
<SCRIPT type=\"text/javascript\">  
   var $ = jQuery.noConflict();  
   $(document).ready(function(){
       $(\'#toHide\').show().doTimeout(100,function() { 
           $(\'#safeForma3\').submit();
       });
   });
</SCRIPT>