2012-08-22 44 views
0

我在看一个JavaScript,我的同事写的,我认为它看起来像它一样在这两个条款:这些条款是否相同?

function doSubmitOversikt(action, command, status) { 

    var checked = document.getElementById("klarbox").checked; 

    if(status && !checked) { 

     if (confirm("Ärendet är satt som Klar (formell handläggning första delen klar). Vill du verkligen ångra detta? Att ångra kan innebära att ärendet behöver arras om i CICS.")) { 

      document.actionForm.action.value = action; 
      document.actionForm.actionCommand.value = command; 
      document.actionForm.submit(); 
      disableAll(); 

     } 
    } else { 

     document.actionForm.action.value = action; 
     document.actionForm.actionCommand.value = command; 
     document.actionForm.submit(); 
     disableAll(); 
    } 

} 

会有什么上面的代码之间的差异,并无条件地做

document.actionForm.action.value = action; 
    document.actionForm.actionCommand.value = command; 
    document.actionForm.submit(); 
    disableAll(); 

+0

如果'status == true','checked == false'和'confirm()'对话框被取消,则什么都不会发生。 – Blender

回答

5

不一样的。如果status!checked都评估为真,但用户不确认。什么都没发生。

但请注意,这样做时,它违反了DRY principle

+0

好了,现在我明白了。我要重写成更合适的形式。谢谢你的答案。 –

1

只有当确认为肯定时,第一个循环才会执行;如果复选框未被选中,status是一个真正的值。

1

我不认为他们是一个条件是如果状态是真的,它没有检查然后要求确认否则什么也不做。如果状态不正确或者被检查,则执行。