Asp.net

使用 javascript 和伺服器端禁用/啟用 requiredFieldValidators

  • July 27, 2018

我有一個下拉列表(dropdown2),如果其中有內容,則它是必需的,但它的選項數據是由另一個下拉列表(dropdown1)選擇中的 ajax 驅動的。有時 dropdown2 將是空的,在這種情況下我不能要求它。所以我可以requiredFieldValidators通過呼叫這個來禁用 javascript…

ValidatorEnable(document.getElementById(validatorId), false);

這工作正常,但伺服器仍然觸發requiredFieldValidator邏輯。有誰知道我如何強制伺服器不驗證驗證器是否設置為假客戶端?

為什麼不直接使用客戶端驗證器?這樣做會讓你的工作變得更加困難。如果您可以通過客戶端訪問它,為什麼還要在伺服器端訪問它?

我能想到的唯一另一件事是創建一個隱藏欄位並通過客戶端設置它,然後在您進行回發時檢查該值並禁用/啟用驗證器。

例如在此之後:

JS:

ValidatorEnable(document.getElementById(validatorId), false);
var hidden = document.getElementById(hiddenID);
hidden = "1";

然後在您的載入事件中:

If (hidden = "1") then
validator.enabled=false
end if

看看這篇與你的非常相似的文章:ASP.NET - 如何停止不需要的伺服器驗證

禁用

document.getElementById("<%=ReqVal.ClientID%>").style.visibility = "hidden"; 

document.getElementById("<%=ReqVal.ClientID%>").enabled = false;

使能夠

document.getElementById("<%=ReqVal.ClientID%>").style.visibility = "visible"; 

document.getElementById("<%=ReqVal.ClientID%>").enabled = true;

引用自:https://stackoverflow.com/questions/6876874