Javascript 通过js数组和变量赋值循环不';行不通
我有一个js代码的价格,这几天来一直困扰着我,下面是一段代码, 问题在于处理ajax响应的过程中。奇怪的是,这段代码在我的本地机器上运行良好,但在在线服务器上运行不正常,我已经用代码对问题进行了注释 这段代码的奇怪之处在于,当我把它放到网上时,Javascript 通过js数组和变量赋值循环不';行不通,javascript,jquery,Javascript,Jquery,我有一个js代码的价格,这几天来一直困扰着我,下面是一段代码, 问题在于处理ajax响应的过程中。奇怪的是,这段代码在我的本地机器上运行良好,但在在线服务器上运行不正常,我已经用代码对问题进行了注释 这段代码的奇怪之处在于,当我把它放到网上时,currField和tempfieldDivId变量根本不起作用,temp变量(我为调试而添加的)以正确的值打印在警报中。但它在交换机的情况下失败了。 在开关中,它总是落在默认选项上,并打印“不匹配” $.ajax({ 类型:“POST”, url:“co
currField
和tempfieldDivId
变量根本不起作用,temp
变量(我为调试而添加的)以正确的值打印在警报中。但它在交换机的情况下失败了。
在开关中,它总是落在默认选项上,并打印“不匹配”
$.ajax({
类型:“POST”,
url:“components/form/form_processing.php”,
数据:dataStringfrmFlds,
cache:false,
成功:功能(opt){
警报(opt);//opt正常,返回:发货人、第一方通知方、收货人、装运类型、包装要求、测试要求、日期、请求预期日期、订单发布者
var defaultFields=opt.split(',');
var numFields=defaultFields.length;
对于(i=0;i
如果有人能在这方面帮助我,我将非常感激。多谢各位
$(tempfieldDivId.show()代码>是否需要在tempfieldDivId之前添加“#”
opt
是
发货方、第一方、通知方、收货人、装运类型、包装要求、测试要求、日期、请求日期、预期日期、订单通知方
在您的switch
语句中,我没有看到它们中的任何一个匹配任何情况,当然每次它都会下降到默认值控制台日志
defaultFields
并查看阵列内部。它是否正确显示?在控制台日志中打印该数组..因为它看起来很好…这应该可以工作..我认为案例与defaultFields值不同…我这么说是因为您在顶部写入了defaultFields值,这与案例不同。谢谢大家,我正在研究建议。@wong2这非常有用,是的,我忽略了在tempfieldDivId之前添加#。但我不明白为什么开关会变成默认开关。如果你能详细说明,那就太好了。啊!我明白了,我一直都很傻!我将检查变量和开关情况。@posal.of.秋switch
将从上到下比较变量tmp
(它是defaultFields
中的一个元素)和它的情况,直到匹配发生,如果没有情况matchtmp
,它将下降到默认值。(根据您给出的opt
值,这就是发生的情况)最后,它得到了解决,所以基本上我完全忽略了服务器响应,这与本地机器和在线服务器的情况不同。本地机器os\u id、fnp\u id、cinfo\u id、订单发货类型、订单请求表单、订单日期、订单需求
$.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
}
});