1

フォーム送信を処理するために、次の Javascript/jQuery スプリントのセットがあります。

     $('#addtocart').click(function (e){

        // No Accessories: normal submit
        if ($('#accessories ul li').size()==0) {
            $('#quickbuyform').submit();
            return true;
        }
        strName = "<?php echo $_product->getName() ?>";

        // Pop with loading
        popAccessories();
        $('.pop_accessories_area_button').show();$('.pop_accessories_area_button').show();
        e.preventDefault();
    });


    $('#nothanks').click( function (){
        $('#quickbuyform').unbind('submit').submit();
    });

    $('.aceimg').click( function (){    
        $('#quickbuyform').unbind('submit').submit();
    });

要件: をクリックするとわかるaddtocartように、この特定の製品に一致するアクセサリがあるかどうかがチェックされます。そうでない場合は、フォームを送信してください。アクセサリがある場合、divセクションがポップアップとして表示されます。そのポップアップから、ユーザーがいずれかのアクセサリ製品をクリックすると、quickbuyform.

問題: フォームの送信が非常にランダムになりました。フォームを送信する場合と送信しない場合があります。

ヘルプ: ここで私が間違っていることは誰にも分かりますか?

ありがとう

4

2 に答える 2

1

問題と思われるのは次のとおりです。

あなたの中に<div class="aceimg><a href="some-product-link.html">

<a>実際、ブラウザーは、JQuery を評価する前にタグ内のリンクに移動し始めます。

できることは、リンクを削除することです (アクセサリを選択するためのものであり、表示するためのものではないため)。

さらにサポートが必要な場合はお知らせください。

于 2013-01-10T04:41:32.353 に答える
0

ここで、特に断続的に問題が発生する可能性があることがいくつかあります。

  • $_product->getName() が設定されていないか、何らかの理由で PHP でエラーがスローされた場合、サーバーの構成に応じて、エラー メッセージ (HTML 形式を含む) が strName の値に挿入されます。これにより、js が破損し、動作しなくなることがよくあります。構文エラー メッセージについては、エラー コンソールを確認してください。

これを 2 回行う必要があるのはなぜですか。

$('.pop_accessories_area_button').show();$('.pop_accessories_area_button').show();

この:

$('#quickbuyform').unbind('submit').submit();

これの代わりに:

$('#quickbuyform').submit();

これは、ページにこれらのフォームが同時に複数ある可能性があり、それを回避しようとしていることを示しています。意図したフォームではなく、目に見えないフォームを送信している可能性があります。

これは本当の解決策ではありません。あなたが見ているものをもっと見る必要がありますが、上記の状況に遭遇しました。

確認したところ、ここにも 404 エラーがあります。

http://www.impressiveinvitations.com.au/skin/frontend/dreamday/imtheme/js/jquery.form.js

それと何か関係があるのか​​もしれません...

于 2013-01-10T04:28:16.487 に答える