[英]jquery form.submit() triggers handlers, but not the actual submit
[英]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.