カートページのformタグの中で、JavaScriptを使用したコードを挿入する方法につきまして

Topic summary

カートページで誕生日入力による年齢確認を実装し、管理側で参照できるようカート属性に保存することが主題。

問題点:formタグ内にJavaScriptを置くと、日付選択時に「カートをアップデートするときにエラーが発生しました」と表示。フォーム外ではエラーはないが、情報が取得できない。

実装概要:年・月・日それぞれのselectを生成し、年月選択後に日のoptionを再生成して不正日付を排除。全入力後に年齢計算し、年齢で処理分岐。イベントはpageshowとchange、jQuery不使用。

用語補足:カート属性は、カートに紐づく追加情報で管理側(管理画面)から確認可能。

最新動向:類似問題のShopify Communityスレッドへのリンクが提示され、投稿者は同一原因と認識。リンク先の内容で修正し、無事に解決したと報告。

結果:解決済み。具体的な修正手順の共有はなく、未解決の質問はなし。

Summarized with AI on February 13. AI used: gpt-5.

いつもお世話になっております。

カートページで、誕生日を入力してもらう年齢確認を実装しています。

  • 生年月日それぞれのselectタグを設置し、optionを生成
  • 年と月が入力されたら、日付けのoptionタグを一度消し、再生成(存在しない日付を出力しないため)
  • すべてのフォームが入力されたら、年齢計算
  • 年齢によって処理を分ける

といった処理をJavaScriptで行なっています。

せっかく誕生日を入力してもらうので、管理側にもみられるようにCart attributesに入れたいため、formタグの中に設置しました。

しかし、日付を選択するだけで購入ボタンの下に「カートをアップデートするときにエラーが発生しました。もう一度お試しください。」と表示されてしまいます。

JQueryは使用しておらず、使用しているイベントはpageshowイベントとchangeイベントです。

formタグの外に設置した場合は、エラーは出ずに動きますが、情報は何も取得できません。

エラーを発生させずに、情報を取得する方法はありますでしょうか?

よろしくお願いいたします。

こんにちは。

下記、類似の問題のようですので下記の内容で修正できないでしょうか。

https://community.shopify.com/topic/1335526

1 Like

株式会社おいかぜ様

ご回答ありがとうございます。

教えていただいた過去の質問と同じ問題でした。

無事に解決できました。

ありがとうございました。

1 Like