我尝试使用下面的switch语句在Ajax成功回调:的Javascript switch语句无法正常运行与字符串
success: function(datain) {
switch (datain)
{
case "ERROR. No ID. Try again":
$(".errors").append('There was an error.');
break;
case "ERROR. Wrong captcha. Try again":
$(".errors").append('There was an error.');
break;
}
}
数据输入是一个字符串(typeof datain
回报string
),它确实包含与案例相同的文本,大小写和标点符号,为什么它们不符合任何一种情况?
console.log(datain)
和console.log("ERROR. No ID. Try again")
完全匹配,都返回typeof
string
为什么我的情况永远不会匹配?
解并引起
溶液通过palswim提供下面$.trim(datain)
。原因是在Firebug中可见的,并且它的最后一个字符串有换行符,而我的开关盒没有......所以我得到了“foo \ n”并尝试匹配“foo”。鉴于js在交换机中使用===
,自然(现在我看到它)是它失败的原因。
尝试'datain === testStr',获取适当的datatin/testStr,并查看结果是什么。这应该让你到某个地方。 – 2010-10-30 06:42:22