3

我在 StackOverflow 上看过一些类似的例子,但我似乎无法让它工作。我有一个 onclick 事件,它转到一个函数,如果返回 ok,它将转到另一个函数,如果没问题,它将在 else 语句中提交它,例如:

document.forms["input"].submit();

所以我尝试将其注释掉并将其发送到一个名为 showHide() 的函数

function showHide() {
    $('#input').submit(function () {
        $('#main-content').hide();
        $('#progress').show();
    });
}

它似乎没有像预期的那样提交表单。我基本上想使用引导程序并显示一个动画进度条,以便用户知道正在发生某些事情,因为有时提交可能需要一段时间。

更新:

我能够使用引导进度条和 jquery ui 进度条来实现这一点。我只是在提交表单之前运行进度条。我在加载视图时隐藏了 div。

        $(function() {

            $("#progress").show();
            });

        document.forms["input"].submit();
4

3 回答 3

2

如果没有看到更多的 HTML,就很难排除故障。但是看起来你已经定义了一个函数,并且在这个函数中你期望一个元素来触发它,这实际上是行不通的。您可以从表单的提交事件中调用您的函数,如下所示:

//this assumes you have a form with id "input"
$('#input').submit(function () {
    showHide();
});
function showHide() {
    $('#main-content').hide();
    $('#progress').show();      
}

简单的 JSFiddle 演示

于 2013-08-26T18:47:37.037 回答
0

document.forms是一个包含表单名称而不是ID的对象。

如果您的表单没有输入名称( <form name="input">...</form>),那么您绑定到的 jQuery 选择器将不起作用。相反,您需要使用$('[name=input']).submit(...).

于 2013-08-26T18:46:38.973 回答
0

表单提交重新加载页面。

因此在您的头部添加:

$(window).load(function() {
  // Animate loader off screen
  console.log("loading");
  $("#dvLoading").fadeOut(2000);
});
于 2013-08-26T18:50:13.173 回答