首页 文章

jquery没有进入下一页

提问于
浏览
0

我有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中运行正常 .

5 回答

  • 4

    我想你应该试试这个:

    $('#toHide').find('form').submit();
    

    或者,如果表单上有ID(我不熟悉Wicket),您可以使用:

    $('#safeForm').submit();
    

    ID选择器使用'#'字符,而不是' . ',它是类选择器前缀 .

  • 1

    "toHide" <div> 有该字符串,因为它是 id 值,而不是它的类,所以你需要:

    $('#toHide')
    

    选择器".toHide"查找一个元素"toHide"作为类的一部分,因此根本找不到 <div> .

    要查找表单,您可以使用

    $('#toHide form').submit();
    
  • 1

    您的HTML中没有名为“safeForm15”的ID,这是您的setTimeout尝试选择的内容 . 事实上,该表单具有ID namespaced,我认为这是非法的 .

    无论如何,快速解决方法是提示'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");
    
  • 1

    这是IE的问题,如果您有一个不可见的GIF,然后将其设置为可见,则动画不起作用 .

    最好的办法就是使用像这样的空图像标签 <img src='' /> 然后当你希望它变得可见时将 src 设置为正确的路径,即 <img src='AnimatingImg.gif' /> .

    如果你这样做,它应该工作 .

    EDIT

    你可以这样做:

    <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>
    

    尝试一下,可能想要一些摆弄 .

  • 1

    其他人提到你的选择器的问题 .

    但是,此代码在两个 script 标记之间也显示为裸 . 这意味着它们将在解析后立即执行 . 这意味着它们可以在加载整个DOM之前执行,从而使它们无效 .

    你需要使用这样的东西:

    <SCRIPT type="text/javascript">  
       var $ = jQuery.noConflict();  
       $(document).ready(function(){
           $('#toHide').show().doTimeout(100,function() { 
               $('#safeForma3').submit();
           });
       });
    </SCRIPT>
    

相关问题