jquery水平时间条在可变秒数后提交页面

jquery水平时间条在可变秒数后提交页面,jquery,timer,submit,form-submit,Jquery,Timer,Submit,Form Submit,我提供一个包含50个问题的在线语言测试。每个问题都有自己的最大持续时间,以秒为单位。每个问题的秒数是数据库中的一个变量。假设问题1的变量“seconds”是60,包含5个复选框,他需要选中其中的3个。这意味着参与者有60秒的时间勾选3个正确的复选框。 如果参与者“及时”勾选了正确的方框,则单击提交。 如果用户在60秒内没有回答,页面将自动提交(即使他没有勾选所有框)。 在测试窗口的左上角,学员可以看到水平时间条在移动。没有显示秒数,但候选人可以清楚地看到他的时间即将到期 这个过程已经使用java

我提供一个包含50个问题的在线语言测试。每个问题都有自己的最大持续时间,以秒为单位。每个问题的秒数是数据库中的一个变量。假设问题1的变量“seconds”是60,包含5个复选框,他需要选中其中的3个。这意味着参与者有60秒的时间勾选3个正确的复选框。 如果参与者“及时”勾选了正确的方框,则单击提交。 如果用户在60秒内没有回答,页面将自动提交(即使他没有勾选所有框)。 在测试窗口的左上角,学员可以看到水平时间条在移动。没有显示秒数,但候选人可以清楚地看到他的时间即将到期

这个过程已经使用javascript运行了4年,没有任何问题(见下文)。但是:它并不适用于所有浏览器,例如Firefox不识别它,结果是Firefox用户有世界上所有的时间来完成或研究他们的答案:-) 到目前为止,我只是说“对不起,我们的系统只针对Internet Explorer进行了优化”,就是这样。毕竟,95%的浏览器都是IE。但现在我已经查看了用户统计数据,并且(就我而言)只有67%的游击队员仍然使用IE。 因此,这就是为什么我目前正在寻找一种方法,将我的脚本从“页面中的javascript”修改为JQUERY。几周前我才发现了JQUERY(我不是程序员),我用JQUERY做了很多事情,它工作起来很有魅力。而且,更重要的是,JQUERY似乎在所有浏览器中都能工作

然而,我似乎没有找到正确的JQUERY代码来实现这一点。 为供参考,我在下面附上我当前使用的代码:

<!--
#bar, #barbackground
{
position:absolute;
left:0;
top:0;
background-color:#FFFFFF;
}

#barbackground{
background-color:#c0c0c0;
}
-->
</style>
<CFOUTPUT>

<CFIF #selectvragen.Vragen_seconds# EQ 0><CFSET seconden=60><CFELSE><CFSET seconden=#selectvragen.Vragen_seconds#+2></CFIF>
<script language="JavaScript1.2">
//1) Set the duration for the progress bar to complete loading (in seconds)
var duration=#seconden#
function postaction(){
    document.forms.formulier.submit()
//Example action could be to navigate to a URL, like following:
//window.location="submit.cfm?scoreperpage=#scoreperpage#&subcatID=#selectvragen.Vragen_subcatID#&level=#selectvragen.Vragen_level#&maxpunten=#maxpunten#&maxtebehalenpunten=#selectvragen.Vragen_maxpunten#&vnr=#vnr#&Tabel=too_late&optie=1&score=#score#&teller=#teller#&nieuwelijst=#nieuwelijst#&starttijdQuestion=#CreateODBCDateTime(now())#"

}

///Done Editing/////////////
var clipright=0
var widthIE=0
var widthNS=0

function initializebar(){
if (document.all){
baranchor.style.visibility="visible"
widthIE=bar.style.pixelWidth
startIE=setInterval("increaseIE()",50)
}
if (document.layers){
widthNS=document.baranchorNS.document.barbackgroundNS.clip.width
document.baranchorNS.document.barNS.clip.right=0
document.baranchorNS.visibility="show"

startNS=setInterval("increaseNS()",50)
}
}

function increaseIE(){
bar.style.clip="rect(0 "+clipright+" auto 0)"
window.status="Loading..."
if (clipright<widthIE)
clipright=clipright+(widthIE/(duration*20))
else{
window.status=''
clearInterval(startIE)
postaction()
}
}

function increaseNS(){
if (clipright<202){
window.status="Loading..."
document.baranchorNS.document.barNS.clip.right=clipright
clipright=clipright+(widthNS/(duration*20))
}
else{
window.status=''
clearInterval(startNS)
postaction()
}
}
window.onload=initializebar
</script>

</CFOUTPUT>
            <script language="JavaScript1.2">
            if (document.all){
            document.write('<div id="baranchor" style="position:relative;width:200px;height:10px;visibility:hidden;">')
            document.write('<div id="barbackground" style="width:200px;height:10px;z-index:9"></div>')
            document.write('<div id="bar" style="width:200px;height:10px;z-index:10"></div>')
            document.write('</div>')
            }
            </script>

//1) 设置进度条完成加载的持续时间(秒)
var持续时间=#秒#
函数postaction(){
document.forms.formulier.submit()
//示例操作可以是导航到URL,如下所示:
//目前,该国政府将选择VRAg.Vragen.次帕卡捷捷捷捷捷捷捷捷捷捷捷捷目目目在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在#&nieuwelijst=#nieuwelijst#&starttijdQuestion=#CreateODBCDateTime(now())#”
}
///完成编辑/////////////
var clipright=0
变量宽度=0
变量宽度ns=0
函数initializebar(){
如果(全部文件){
baranchor.style.visibility=“可见”
宽度=bar.style.pixelWidth
startIE=setInterval(“increaseIE()”,50)
}
if(document.layers){
宽度ns=document.baranchorn.document.barbackgrounds.clip.width
document.baranchorn.document.barNS.clip.right=0
document.baranchorn.visibility=“show”
startNS=setInterval(“increaseNS()”,50)
}
}
函数递增{
bar.style.clip=“rect(0”+clipright+“自动0”)
window.status=“正在加载…”

if(clipright您所做的表示非常好,值得赞赏

然而,我也是jQuery/javaScript的新手,我不能完全理解你的代码

我相信这不会完全解决你的问题。而且,我也在等待其他有经验的人给予适当的帮助


谢谢。

您的陈述非常好,值得赞赏

然而,我也是jQuery/javaScript的新手,我不能完全理解你的代码

我相信这不会完全解决你的问题。而且,我也在等待其他有经验的人给予适当的帮助

谢谢。

JQuery中有.submit()选项,例如

$("#formId").submit();
我只是在寻找一些类似于你所要求的东西,并在计时器归零时应用了它。它对我来说是有效的,但我还没有在很多浏览器上尝试过

我的计时器归零后,我确实有点难以将其提交。奇怪的是,替换提交输入

<input type="submit" ... />
我对JQuery仍然是新手,所以我确信有更好的方法来修复我的代码

$("#formId").submit();
我只是在寻找一些类似于你所要求的东西,并在计时器归零时应用了它。它对我来说是有效的,但我还没有在很多浏览器上尝试过

我的计时器归零后,我确实有点难以将其提交。奇怪的是,替换提交输入

<input type="submit" ... />

我对JQuery还是新手,所以我确信有更好的方法来修复我被破坏的代码。

谢谢你的回答,老实说,我甚至不知道我是否需要JQuery插件,所以我会研究它。谢谢你的回答,老实说,我甚至不知道我是否需要JQuery插件,所以我会研究它。