不知道为什么,但有些功能不能正常工作。我刚开始使用 JavaScript,所以我的调试技能欠缺。我只是从它的先前版本中添加了几行(以实现新功能),从那时起,它就没有像以前那样工作了。:/ 我使用了 jsBin 或其他任何名称,它告诉了我一些事情,但我不知道这是否是合法的建议。
它告诉我的一件事是我在范围之外使用 setID,我猜是因为我在 for 语句之外使用它?但它仍然具有相同的功能。如果这是一个问题,我该如何声明它以便我可以使用它?(尽管那部分工作正常。)
另一个是我应该使用 === 而不是 == 来比较 MetroID 和 0。说实话,不太确定有什么区别。
无论如何,我遇到的问题是在页面加载时不再调用函数 setSubDesc() 。那是在我添加该代码之前。我遇到的另一个问题是更改单选按钮“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>