Javascript jquery不继续下一页

Javascript jquery不继续下一页,javascript,jquery,wicket,Javascript,Jquery,Wicket,我有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" w

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

var$=jQuery.noConflict();
$('.toHide').show().doTimeout(100,函数(){
$('.toHide').find('safeForma3').submit();});
wicket代码:

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>");
静态私有类安全提交行为扩展了抽象行为{
已渲染的公共void(组件){
super.onRendered(组件);
StringBuffer=新的StringBuffer(200);
buffer.append(“\n”);
append(“var$=jQuery.noConflict();\n”);
append($('.toHide').show().doTimeout(100,function(){$('.toHide').find(');
buffer.append(component.getMarkupId()).append(“').submit();});\n“;
component.getResponse().write(缓冲区);
}  
} 
buffer.append(component.getMarkupId()).append(“').submit();});\n“;
我尝试过:$('.toHide')。查找('form')。提交();});。但还是没有用


将$('.toHide')更改为$('#toHide')后,页面将转到下一页,但动画不会在IE6/7中出现,它在FF中工作正常。

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"); 

我想你应该试试这个:

$('#toHide').find('form').submit();
或者,如果表单上有ID(我不熟悉Wicket),您可以使用:

$('#safeForm').submit();
ID选择器使用“#”字符,而不是“.”,这是类选择器前缀。

“toHide”
将该字符串作为ID值,而不是类,因此您需要:

 $('#toHide')
选择器“.toHide”查找类中包含“toHide”的元素,这样就根本找不到您的

要查找表单,请使用

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

其他人提到了选择器的问题

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

您需要使用以下内容:

<SCRIPT type="text/javascript">  
   var $ = jQuery.noConflict();  
   $(document).ready(function(){
       $('#toHide').show().doTimeout(100,function() { 
           $('#safeForma3').submit();
       });
   });
</SCRIPT>
<SCRIPT type="text/javascript">  
   var $ = jQuery.noConflict();       
   $('#toHide').show();
   $('#loadingImg').attr('src', 'img/load.gif');
   setTimeout(function() {
       $('#toHide').find('safeForma3').submit();
   }, 100);
</SCRIPT>

var$=jQuery.noConflict();
$(文档).ready(函数(){
$('#toHide').show().doTimeout(100,function(){
$(#safeForma3')。提交();
});
});

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

最好的方法是使用一个像这样的空图像标签,然后当你想要它变得可见时,将
src
设置为正确的路径,即

如果你这样做,它应该会起作用

编辑

您可以这样做:

<SCRIPT type="text/javascript">  
   var $ = jQuery.noConflict();  
   $(document).ready(function(){
       $('#toHide').show().doTimeout(100,function() { 
           $('#safeForma3').submit();
       });
   });
</SCRIPT>
<SCRIPT type="text/javascript">  
   var $ = jQuery.noConflict();       
   $('#toHide').show();
   $('#loadingImg').attr('src', 'img/load.gif');
   setTimeout(function() {
       $('#toHide').find('safeForma3').submit();
   }, 100);
</SCRIPT>

var$=jQuery.noConflict();
$('#toHide').show();
$('#loadingImg').attr('src','img/load.gif');
setTimeout(函数(){
$('#toHide')。查找('safeForma3')。提交();
}, 100);
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>


试试看,可能需要一点摆弄。

我怀疑问题出在设置超时。它在IE中运行良好。提供相同类型功能的库将使用jQuery。另外,如果您提供的代码很少,只再现了HTML/JS的问题,那么您更有可能得到答案。如果在FF中进行验证,您会得到不同之处我认为这与jquery无关。这似乎是css的一个问题。建议:将此部分页面保存在本地硬盘(从浏览器)上,并尝试显示图像。请确认呈现的wicket:id和脚本相同。我发现确实存在这样的情况:
component.getMarkupId()
在其构造过程中返回不同的值。例如,构造函数中的
getMarkupId()
onBeforeRender()中的
getMarkupId()
不同。另外,我假设您已经完成了
component.setOutputMarkupId(true)
?这就是呈现的HTML代码的样子吗?您是否只是发布模板而不是输出?不管怎样,这并不重要。只要“toHide”是唯一的,我建议的代码无论如何都会工作。我改变了,现在动态页面加载可以在IE中工作,但不能在FF中工作?更改的代码是:buffer.append($('.\35; toHide').find(\“\”).append(component.getMarkupId()).append(\”.submit();\n”);不,您不需要component.getMarkupID。只是buffer.append我的行逐字。错误。。。不是逐字逐句。您仍然需要将其包装在setTimeout中。我会用一些手来更新我的回答。不,它在IE中有效,而不是在FF中。代码:buffer.append($('#toHide').find('form').submit();\n);没错,选择器“#toHide form”比使用选择器“#toHide”后跟find().$('#toHide').show().doTimeout(5000,function(){$('#toHide').find('safeform11').submit();)更好;。它在IE和FF中工作。但是问题是IE6/7中没有动态动画。你在说什么“动态动画”?单击新客户->街道为rue maes,编号为20,邮政编码为1000。将在FF中显示带有动画的图像。但是同样的图像会显示出来,但它在IE中没有动画。这听起来像是一个单独问题的好主题:-)你应该发布尝试执行动画的代码。(我在Chrome中看不到任何“动画”,不管它值多少。)当页面在浏览器中呈现时,表单的id是否为“safeForm”?正如我所提到的,我不知道Wicket是否真的用ID属性创建了表单。它可以工作,但动画在IE中没有发生。但是在FF中工作得很好。这里跟wicket没关系,你一定要去