Pop*_*oko 2 javascript if-statement
我正在尝试做一些事情,但我正在努力解决一个愚蠢的错误,希望你能帮助我.
正如你在我的代码中看到的,我在服务器上有一些复选框,我附加了一个JavaScript函数.此函数获取两个值(当前值和原始值).我的问题是当这个函数触发if它时总是到达第一个子句并且永远不会到达else子句,它没有任何意义.
当我在代码中使用了少量警报时,会发生以下情况:
案例1:警报#1 原始:false当前:真实警报#2 true
案例2:警报#1 原始:false当前:虚假警报#2 true
正如你所看到的,无论我在第二次警报中得到什么.
希望我设法解释我的问题.
<asp:CheckBox id="chkIsCustomQuantity" originalvalue="false" runat="server" onclick="checkChange(this.checked, this.attributes['originalvalue'].value" />
<script type="text/javascript" language="javascript">
function checkChange(value, originalValue) {
//i added this for debugging purpose
alert('original: ' + originalValue + ' ' + 'current: ' + value);
alert(value != originalValue);
if (value != originalValue) {
// always happens
}
else {
// never happens
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
originalValue总是一个字符串.value是一个布尔值.所以,它们永远不会相等,但是当你打印它们时它们看起来是相同的(因为它们在那时都被转换为相同的字符串值).
您可以通过各种方式解决此问题.一种简单的方法是首先将两者都转换为字符串:
if (String(value) != String(originalValue))
Run Code Online (Sandbox Code Playgroud)