DNN (DotNetNuke) サイト内から mailchimp フォームを送信しようとしています。通常、フォーム タグを削除し、送信ボタンの onclick イベントに JavaScript を配置するだけです。これは機能し、ここで確認できます。
しかし、誰かがサイトに来たときにこのフォームをポップアップさせたいので、このポップアップモジュールを使用しています。そして、この構成では機能しません。指定された URL にフォームを送信しますが、フォーム データは渡されません。このページはこちらです。
いくつかの観察:
- ページのソースを表示すると、ポップアップ フォームは form タグ内にありますが、this.form はスクリプトで null を返します。
- Chrome で送信ボタン要素を調べると、html フォームがフォーム タグの外側にあることがわかります。
- ページの読み込み時に DOM 要素を移動するこのポップアップ モジュールには、JavaScript が含まれている可能性があります。
入力ボタンの送信時に呼び出す js 関数を作成しました。コードは次のとおりです。
function submitSubscription(clickedElement){
$form = $('body').find('form');
$form.attr('action', 'http://InciteResults.us2.list-manage1.com/subscribe/post?u=6d82b6a028c94cc75005eb4fe&id=1c7ceabac4');
$form.submit();
}
注: この関数 clickedElement.form では、null が返されます。