簡體   English   中英

form.submit觸發onsubmit但不提交

[英]form.submit triggers onsubmit but does not submit

表格

<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是我想要鏈接提交表單的地方,而不是de Submit按鈕通常提交表單的地方。

.submit()為什么不提交表單? 我在這里很困惑,如果對發生的事情有任何見解,將不勝感激。

我誤解了您的問題,這是我的第一個答案。

無論如何,未提交表單的原因或至少不是您期望的方式的原因是,據我所知,除非用戶調用提交,否則瀏覽器不會觸發onsubmit方法。 使用.submit()不會觸發它。

一種解決方法(希望這應該可行)是將Submit函數更改為以下內容。

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

我也不確定要設置document.pressed ,您可能無法執行此操作。 如果沒有,那么您始終可以將參數傳遞給OnSubmitForm函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM