編集051012:問題は、フォームが1ページにあることとは関係がなく、プロトタイプとjQueryの間の競合に関係していることが判明しました。フッターの下部にjQueryが含まれていましたが、競合は設定されていませんでした。その特定のjQueryを含めた後、これを追加しただけです。
<script type="text/javascript">
//<![CDATA[
$.noConflict();
//]]>
</script>
「フォームの埋め込みやJavaScriptエラーがないと仮定すると、コードは機能するはずです。」と述べたPavel Novitskyの回答を受け入れます。これにより、Javascriptと関係がある可能性があることがわかりました。
私は現在、Magentoを使用してeコマースサイトを構築しています。このサイトでは、登録フォームとログインフォームの両方を1つのページに配置する必要があります。
両方のフォームを1つのページに正常に統合しましたが、ログインまたは登録できませんでした。
フォームの構造の概要は次のとおりです。
<!--registration-->
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate">
<!--// form input fields go here-->
</form>
<script type="text/javascript">
//<![CDATA[
var dataForm = new VarienForm('form-validate', true);
//]]>
</script>
<!--login-->
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
<!--// form input fields go here-->
</form>
<script type="text/javascript">
//<![CDATA[
var dataForm = new VarienForm('form-validate', true);
//]]>
</script>
変数が2回定義されていることに気付いたdataForm
ので、そのうちの1つを切り替えてdataForm02
、送信が完了するかどうかを確認しました。どちらも行われませんでした。そのため、約6時間のプロディングの後、JavaScriptの検証を削除することにしました。驚いたことに、両方のフォームでの送信は機能しました。
なぜこれが起こっているのか誰かが知っていますか?両方のフォームで提出物を受け取ったのは良いことですが、2つのフォームで採用された検証の形式がないため、これは絶対に理想的ではありません。20階建てのアパートからコンピューターを捨てるところです。