[英]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.