繁体   English   中英

使用Javascript提交表单

[英]Using Javascript to submit forms

编辑:由于某种原因,如果我将输入更改为a,提交代码工作正常。 好吧,这个工作,我只是将一个标签设置为看起来像css中的输入标签。

我正在使用jQuery函数在按下某个按钮时提交表单,但这似乎对表单没有影响。

我的代码如下:HTML:

<form id="loginForm" action="" method="POST">
    <input class="loginInput" type="hidden" name="action" value="login">
    <input id="step1a" class="loginInput" type="text" name="username">
    <input id="step2a" class="loginInput" type="password" name="password"  style="display:none;">
    <input id="step1b" class="loginSubmit" onclick="loginProceed();" type="button" name="submit" value="Proceed" title="Proceed" />
    <input id="step2b" class="loginSubmit" onclick="submitlogin();" type="button" value="Validate" title="Validate"  style="display:none;" />
</form>

使用Javascript:

function submitlogin()
{
    $("#loginForm").submit();
}

function loginProceed()
{
    $("#step1a").fadeOut("slow",function(){
        $("#step2a").fadeIn("slow", function(){
            $("#step2a").focus();
        });
    });
    $("#step1b").fadeOut("slow",function(){
        $("#step2b").fadeIn("slow");
    });
    $("#step1c").fadeOut("slow",function(){
        $("#step2c").fadeIn("slow");
    });

}

但是,当我按下按钮时,绝对不会发生任何事情。

PS。 这个函数可能看起来毫无意义,因为我只能使用输入类型=“提交”,但我最初打算使用它来获得更多功能,为了测试目的,我将函数剥离到它的裸骨。

您需要指定一个表单。

$("#loginForm").submit();

尝试使用name="submit"输入使用其他名称。 没有它,它对我来说很好。

编辑:添加到问题的其他信息。 你似乎在调用错误的函数。 display:none的提交按钮display:none调用loginProceed()而不是submitlogin()

此外,如果函数是在jQuery的ready()函数中定义的,那么除非将它们定义为全局函数,否则它们将超出范围。

实例: http //jsfiddle.net/eSeuH/

更新示例: http //jsfiddle.net/eSeuH/2/

如果注释中记下的代码在加载DOM之前运行,则无法运行。 您需要确保它在DOM加载之前不会运行(或至少它已引用的元素已加载)。

$(document).ready(function() {
    $("#loginForm").submit(function() { alert("clicked"); });
});

此外,表单标记中的action属性为空。 提交表单时您希望发生什么?

没有jquery'submit'方法(至少不是ajax): http//api.jquery.com/category/ajax/

您可能想要调用表单的提交方法:

$("#loginForm")[0].submit();

请记住,jquery选择器总是返回数组。

编辑
'submit'实际上会绑定处理程序以提交事件,而不是提交表单:
http://api.jquery.com/submit/

尝试查看Firefox调试控制台。 也许你在javascripts有错误??? 因为即使行动是空的,一切都有效。

出于某种原因,如果我将输入更改为a,则提交代码可以正常工作。 好吧,这个工作,我只是将一个标签设置为看起来像css中的输入标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM