表格
<form onsubmit="OnSubmitForm();" action="<?php echo base_url(); ?>" method="post" autocomplete="off" name="register_form" id="register_form">
提交按钮
<input id="register_submit" name="submit" class="medium" type="submit" value="Submit" onclick="document.pressed=this.value"/>
提交链接
<a href="javascript: Submit();">full registration</a>
Javascript / jQuery
function OnSubmitForm()
{
if(document.pressed == 'Full registration')
{
alert('full');
document.register_form.action ="<?php echo base_url(); ?>account/register";
}
else
if(document.pressed == 'Submit')
{
alert('light');
document.register_form.action ="<?php echo base_url(); ?>account/register_light";
}
}
function Submit()
{
document.pressed = 'Full registration';
$('#register_form').submit();
}
如果提交按钮被点击,则会触发“轻量级”警报,并且表单将按原样提交给“account / register_light”。
但如果链接被点击,则会触发“完整”警报,但不会提交表单。链接上的更多klicks不会触发警报也不会提交表单。
如果在链接被点击后点击了提交按钮,表单将被提交到“account / register”(无警报)。 Whitch是我希望链接提交表单的地方,而不是de submit按钮通常提交表单的地方。
为什么不.submit()提交表单? 我在这里很困惑,对于所发生的事情的任何见解都将受到高度赞赏。
答案 0 :(得分:0)
我的第一个答案误读了你的问题。
无论如何,您的表单未被提交的原因,或者至少不是您期望的方式是因为据我所知,除非用户调用提交,否则浏览器不会触发onsubmit
方法。使用.submit()
不会导致它被触发。
解决方法(希望这应该有效)是将提交功能更改为以下内容。
function Submit()
{
document.pressed = 'Full registration';
OnSubmitForm();
$('#register_form').submit();
}
我也不确定设置document.pressed
,你可能无法做到这一点。如果没有,那么你总是可以将参数传递给OnSubmitForm函数。