我面临着以下代码的烦人问题
if (isExistAndDefined(Ext.get('checkBusyFwd')) && Ext.get('checkBusyFwd').dom.checked){
if (hg_combo2.getValue() != hgElParms.items['voice_mail_value']
&& hg_combo2.getValue() != hgElParms.items['voice_mail_value_fr']){
if (isEmptyValue(Ext.DomQuery.select("form[id=frm_hunt_grp]")[0].<%=VoiceGroupUtil.ATTR_HUNT_BUSY_TO_DN_NM %>.value)){
hg_popupMsg(hgElParms.items['msg_not_empty'], hg_combo2);
return false;
}
if (!checkLengthRange(Ext.DomQuery.select("form[id=frm_hunt_grp]")[0].<%=VoiceGroupUtil.ATTR_HUNT_BUSY_TO_DN_NM %>.value, 10, 15)){
hg_popupMsg(hgElParms.items['msg_invalid_tn'], hg_combo2);
return false;
}
if (!checkRegExp(Ext.DomQuery.select("form[id=frm_hunt_grp]")[0].<%=VoiceGroupUtil.ATTR_HUNT_BUSY_TO_DN_NM %>.value, /^[0-9]+$/)){
hg_popupMsg(hgElParms.items['msg_invalid_tn'], hg_combo2);
return false;
}
}
}
voice_mail_value_fr包含法语字符“Boîtevocale”,voice_mail_value包含英文字符“语音邮件”。我的问题是每当我从下拉框中传递英文值即“语音邮件”时,如果评估为假,,这是预期的,但不知何故,对于法语值if if计算为true,if块中的代码获取执行阻碍了正确的流程。
答案 0 :(得分:0)
让我猜一下这里值的数据类型:
hg_combo2.getValue() != hgElParms.items['voice_mail_value_fr']
他们是字符串,对吗?在Java中,字符串评估是通过.equals()方法。
!hg_combo2.getValue().equals(hgElParms.items['voice_mail_value_fr'])
对于Java中的字符串,!=
和==
仅评估指针等价,而不是内容等价。