我有一个js代码的价格,它一直困扰着我,因为最近几天,下面是代码段, 问题在于处理ajax响应。关于这个代码的奇怪之处是它在我的本地机器上工作正常,但在在线服务器中无法正常工作,我已经通过代码评论了这些问题。循环js数组和变量赋值不起作用
这段代码奇怪的是,当我把它上网,currField
和tempfieldDivId
变量没有在所有的工作和temp
变量(我加为了调试)打印在警报与正确的值。但它在开关情况下失败。 而在开关中,它总是落入默认选项并打印“不匹配”。
$.ajax({
type: "POST",
url: "components/form/form_processing.php",
data: dataStringfrmFlds,
cache:false,
success: function(opt){
alert(opt);// opt is fine, returns: ship_to,first_notify_party,consignee,shipment_type,packaging_requirements,testing_requirements,date,request_expected_date,order_ponunber
var defaultFields = opt.split(',');
var numFields = defaultFields.length;
for(i = 0; i < numFields; i++){
var temp = "";
var currField = defaultFields[i];
var tempfieldDivId = "def_"+currField;
//these doesnt work
$(tempfieldDivId).show();
$('#'+currField).attr('required','required');
temp = currField;
alert(temp); //this does print the field name in the alert
//these doesnt work either
switch(temp){
case "os_id":
$("#def_os_id").show();
break;
case "ff_id":
$("#def_ff_id").show();
break;
case "fnp_id":
alert("HI there");
$("#def_fnp_id").show();
break;
case "cinfo_id":
$("#def_cinfo_id").show();
break;
case "order_date":
$("#def_order_date").show();
break;
case "order_shiptype":
$("#def_order_shiptype").show();
break;
case "order_portdis":
$("#def_order_portdis").show();
break;
case "order_requestform":
$("#def_order_requestform").show();
break;
case "order_specialinstructions":
$("#def_order_specialinstructions").show();
break;
case "order_packreq":
$("#def_order_packreq").show();
break;
case "order_testreq":
$("#def_order_testreq").show();
break;
case "order_reqexdate":
$("#def_order_testreq").show();
break;
default:
alert("No match");//this is printed out all the times
break;
}//end of switch
}//end of for loop
}
});
如果有人能帮助我,我将不胜感激。谢谢。
你会得到任何错误? – Vivek 2011-04-18 06:57:32
控制台日志'defaultFields'并查看数组的内部。它显示正确吗? – JohnP 2011-04-18 06:59:12
打印控制台日志中的数组..因为它看起来对我很好...这应该工作.. – Vivek 2011-04-18 07:01:15