使用 If Else 语句将 document.all 替换为 document.getElementById

Replace document.all with document.getElementById with If Else Statement

我正在尝试重写此函数以删除 document.all 并替换为 document.getElementById,但到目前为止我运气不佳。 这是原始函数:

if (document.all.DeptFundingYN.value == "TRUE") {

这是我的:

function VoidRtn(fRecNum,fReferenceNum) {
  var DeptFundingYNField = document.getElementById("VoidID");

  if(DeptFundingYNField.value == "TRUE") {
    var href = "PaymentsEntry.asp?speedpay=false&CLAIM=YES&LevelCode=Void&Mode=Update&Reference_Num=" + document.PayClaimGridForm.ReferenceNum.value;
    href += "&RecNum=" + fRecNum;
    document.location.href = href;
  } else {
    alert("No Department Funding");
  }
}

这个按钮:

<button title=""Void This Payment"" id=""VoidID"" class=""whitefontbutton"" onclick=""VoidRtn(" & fRecNum & "," & fReferenceNum & ");"" style=""width: 15px; height: 15px;BACKGROUND: #6a7dae; FONT-SIZE: 7 PT"" onmouseover=""this.style.background='#000066'"" onmouseout=""this.style.background='#6a7dae'"">V</button></font>

我不明白为什么 double-quotes 在你的 <button> 中出现了两次,例如:

<button title=""Void This Payment"" ...

应该是:

<button title="Void This Payment" ...

而且您的标记中没有任何 "TRUE" 值。 您的条件起作用的唯一方法是向按钮添加 value="TRUE" 属性,例如:

<button title="Void This Payment" value="TRUE" ...

经过这些更改,它应该可以工作。