我有js代码的价格,自从过去几天以来一直困扰我,下面是代码段, 问题是在处理ajax响应期间。关于这段代码的奇怪之处在于它在我的本地机器上工作正常,但在在线服务器上无法正常工作,我已经通过代码对问题进行了评论。
关于此代码的一个奇怪之处是,当我在线提交时,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
}
});
如果有人能帮助我,我将非常感激。谢谢。
答案 0 :(得分:2)
$(tempfieldDivId).show();
您是否需要在tempfieldDivId之前添加“#”?opt
是
ship_to,first_notify_party,consignee,shipment_type,packaging_requirements,testing_requirements,date,request_expected_date,order_ponunber
我在switch
声明中没有看到任何一个匹配任何情况,当然它每次都会降为默认值。