Javascript jquery不继续下一页
我有jquery,但它不会进入下一页,它总是显示图像并等待,永远不会进入下一页 HTML代码: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
<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没关系,你一定要去