フォーム
<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」に送信されます。
ただし、リンクがクリックされると、「フル」アラートがトリガーされますが、フォームは送信されません。リンクをさらにクリックしても、アラートはトリガーされず、フォームは送信されません。
リンクがクリックされた後に送信ボタンがクリックされると、フォームは「アカウント/登録」に送信されます(アラートなし)。リンクがフォームを送信する場所であり、送信ボタンが通常フォームを送信する場所ではありません。
.submit()がフォームを送信しないのはなぜですか?私はここで混乱しています。何が起こっているのかについての洞察は大いにありがたいです。