0

理由はわかりませんが、一部の機能が正常に機能していません。JavaScriptを使い始めたばかりなので、デバッグスキルが不足しています。以前のバージョンから(新しい機能を実装するために)これに数行追加しましたが、それ以降、以前のようには機能していません。:/ jsBinまたはそれが呼ばれるものを使用し、いくつかのことを教えてくれましたが、それが正当なアドバイスであるかどうかはわかりません。

それが私に言ったことの1つは、私がsetIDをスコープ外で使用しているということでした、私はそれをforステートメントの外で使用しているからだと思いますか?しかし、それはまだ同じ機能にあります。それが問題である場合、それを使用できるようにどのように宣言しますか?(その部分は正常に機能しますが。)

もう1つは、==の代わりに===を使用してmetroIDと0を比較する必要があるということです。正直に言うと、違いが何であるかはよくわかりません。

とにかく、私が抱えている問題は、関数setSubDesc()がページの読み込み時に呼び出されなくなったことです。そのコードを追加する前でした。私が抱えているもう1つの問題は、ラジオボタン「pay_type」を変更してもJavascriptの変更が呼び出されないことです。何かを動かすと、特定の部分が正常に機能します。しかし、物事の配置がなぜ違いを生むのか、私は本当に理解していません。

どんな/すべての助けも大歓迎です。:/

私が追加したもの:

setFundSelect();

function setFundSelect() {
    var orgID = $("#org_fund_id").val();
    $("#f_span").hide();
    $("#f_div").hide();
    $('#fundraiser_id').removeClass('required');

    for (var i=0; i < orgs.length; i++) {
        if (orgs[i][1] == orgID) {
            var setID = i;
        }
    }

    if (orgs[setID][4] == '1') {
        $('#fundraiser_id').addClass('required');
        $("#f_span").show();
        $("#f_div").show();
        $("#fundraiser_id").children().remove(); 
        for (var i=0; i < fundraisers.length; i++) {
            if (fundraisers[i][0] == orgID) {
                if (fundraisers[i][4]) {
                    selectedHTML = 'selected=selected';
                } else {
                    selectedHTML = '';
                }
                $('#fundraiser_id').append('<option value="'+fundraisers[i][2]+'" '+selectedHTML+'>'+fundraisers[i][3]+'</ option>');
            }
        }
    }
}

ページ内のJavascriptの全範囲:

<script type="text/javascript">
var orgs = [];
var fundraisers = [];

function pageInit() {

    <?php do {  
        if ($row_rsOrg['ID'] == $_GET['fund_ID']) { 
            $selected = "true"; 
            $selectedMetroID = $row_rsOrg['metro_ID'];
        } else { 
            $selected = "false"; 
            } ?>
        orgs.push(['<?php echo $row_rsOrg['metro_ID'] ?>','<?php echo $row_rsOrg['ID'] ?>', '<?php echo addslashes($row_rsOrg['org_name']) ?>', <? echo $selected; ?>, '<?php echo $row_rsOrg['if_fund'] ?>']);
    <?php } while ($row_rsOrg = mysql_fetch_assoc($rsOrg)); ?>

    <?php do {  
        if ($row_rsFund['ID'] == $_GET['ref_ID']) { 
            $selected2 = "true"; 
            $selectedOrgID = $row_rsFund['org_fund_ID'];
        } else { 
            $selected2 = "false"; 
        } ?>
        fundraisers.push(['<?php echo $row_rsFund['org_fund_ID'] ?>', '<?php echo $row_rsFund['ref_ID'] ?>', '<?php echo $row_rsFund['ID'] ?>', '<?php echo addslashes($row_rsFund['firstname']) ?> <?php echo addslashes($row_rsFund['lastname']) ?>', <? echo $selected2; ?>]);
    <?php } while ($row_rsFund = mysql_fetch_assoc($rsFund)); ?>

    $('#metro_id').change(function() {
        setOrgSelect();
    });

    $('#org_fund_id').change(function() {
        setFundSelect();
    });

    $('#subscription_value').change(function() {
        setSubDesc();
    });

    $('#metro_id').append('<option value="0">Please Choose...</ option>');
    $('#metro_id').append('<option value="1" <? if ($selectedMetroID == 1) { echo "selected=selected"; }?>>St. Louis</ option>');
    $('#metro_id').append('<option value="2" <? if ($selectedMetroID == 2) { echo "selected=selected"; }?>>Charlotte</ option>');

    setOrgSelect();
    setFundSelect();
    setSubDesc();

    $("input[name='pay_type']").change(function(){
        $('#ppac').removeClass('required');
        $('#cc').removeClass('required');
        $('#cc_cvv2').removeClass('required');
        $('#name').removeClass('required');
        $('#street').removeClass('required');
        $('#zip').removeClass('required');

        if ($("input[name='pay_type']:checked").val() == 'cc') {
            $('#pay_type_cc_div').show();
            $('#pay_type_code_div').hide();

            $('#cc').addClass('required');
            $('#cc_cvv2').addClass('required');
            $('#name').addClass('required');
            $('#street').addClass('required');
            $('#zip').addClass('required');
        } else {
            $('#pay_type_code_div').show();
            $('#pay_type_cc_div').hide();

            $('#ppac').addClass('required');
        }
        $('.submit_divs').show();
    });
}

function setOrgSelect() {
    var metroID = $("#metro_id").val();

    $("#o_span").show();
    $("#org_fund_id").children().remove(); 
    for (var i=0; i < orgs.length; i++) {
        if (orgs[i][0] == metroID) {
            if (orgs[i][3]) {
                selectedHTML = 'selected=selected';
            } else {
                selectedHTML = '';
            }
            $('#org_fund_id').append('<option value="'+orgs[i][1]+'" '+selectedHTML+'>'+orgs[i][2]+'</ option>');
        }
    }
}

function setFundSelect() {
    var orgID = $("#org_fund_id").val();
    $("#f_span").hide();
    $("#f_div").hide();
    $('#fundraiser_id').removeClass('required');

    for (var i=0; i < orgs.length; i++) {
        if (orgs[i][1] == orgID) {
            var setID = i;
        }
    }

    if (orgs[setID][4] == '1') {
        $('#fundraiser_id').addClass('required');
        $("#f_span").show();
        $("#f_div").show();
        $("#fundraiser_id").children().remove(); 
        for (var i=0; i < fundraisers.length; i++) {
            if (fundraisers[i][0] == orgID) {
                if (fundraisers[i][4]) {
                    selectedHTML = 'selected=selected';
                } else {
                    selectedHTML = '';
                }
                $('#fundraiser_id').append('<option value="'+fundraisers[i][2]+'" '+selectedHTML+'>'+fundraisers[i][3]+'</ option>');
            }
        }
    }
}

function setSubDesc() {
    var subVal = $("#subscription_value").val();
    if (subVal == "10") {
        $("#monthly_sub").show();
        $("#yearly_sub").hide();
    } else {
        $("#monthly_sub").hide();
        $("#yearly_sub").show();
    }
}
</script>
4

1 に答える 1

1

===または==の質問に関しては、この投稿を読むことを強くお勧めします。JavaScriptの比較では、どちらの演算子(== vs ===)を使用する必要がありますか?

于 2012-08-30T09:05:04.560 に答える