0

表格

<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”。

但是,如果点击链接,则会触发“完整”警报,但不会提交表单。链接上的更多点击不会触发警报,也不会提交表单。

如果在单击链接后单击提交按钮,则表单将提交到“帐户/注册”(无警报)。Whitch 是我希望链接提交表单的地方,而不是提交按钮通常提交表单的地方。

为什么 .submit() 不提交表单?我在这里很困惑,对正在发生的事情的任何见解都将不胜感激。

4

1 回答 1

0

我第一次回答时误读了你的问题。

无论如何,您的表单没有被提交,或者至少不是您期望的方式的原因是,据我所知,onsubmit除非用户调用提交,否则浏览器不会触发该方法。使用.submit()不会导致它着火。

一种解决方法(希望这应该有效)是将您的提交功能更改为以下内容。

function Submit()
{
    document.pressed = 'Full registration';
    OnSubmitForm();
    $('#register_form').submit();
}

我也不确定设置document.pressed,你可能无法做到这一点。如果没有,那么您总是可以将参数传递给 OnSubmitForm 函数。

于 2012-07-09T09:41:30.020 回答