运行所有javascript代码后运行C#代码

时间:2009-08-17 07:39:05

标签: asp.net javascript

我有一个表单,其中点击该按钮就有一个按钮我正在调用一个javascript函数,其中我显示为3 .. 2 .. 1种效果然后我返回true。

但是在显示3后,只有返回true才会被执行并且表单正在提交。

如何在运行脚本之前停止表单提交。

编辑:

function jsFun() 
{ 
    timerCount(3); 
    //Calling the Timer Function. 
} 

var t; 

function timerCount(cDown) 
{ 
    if (cDown == 0) 
    { 
        clearTimeout(t); 
        return true; 
    } 

    $('#<%= mainContainer.ClientID %>').html(cDown); 
    cDown = cDown - 1; 
    t = setTimeout('timerCount(' + cDown + ')', 1000); 
} 

<asp:Button ID="btnStarts" runat="server" Text="Start" OnClientClick="return jsFun();" OnClick="btn_click" />

2 个答案:

答案 0 :(得分:1)

如果'submit'按钮返回true,将提交表单。

那么答案就是返回false,然后执行'倒计时'(因为它可能是异步的),并通过'form.submit();'手动提交表单。

答案 1 :(得分:0)

我已经稍微修改了代码而不是像这样使用ASP.NET:

function jsFun() {
    timerCount(3);
}

var t;

function timerCount(cDown) {
    if (cDown == 0) {
        clearTimeout(t);
        return true;
    }

    document.getElementById('testbutton').value = cDown;

    cDown = cDown - 1;
    t = setTimeout('timerCount(' + cDown + ')', 1000);
}

这样称呼:

<input id="testbutton" name="testbutton" type="button" value="Test me!" onclick="return jsFun();" />

与宣传的完全一样!我想说这行有问题:

$('#<%= mainContainer.ClientID %>').html(cDown);

希望它有所帮助。