Asp.net
使用 jquery 禁用 asp.net 驗證器
我正在嘗試使用 jquery 禁用驗證器。
我已經查看 了使用 JavaScript 禁用 ASP.NET 驗證器 以及其他幾個這樣做的人。
它似乎沒有工作,但它打破了。
我的程式碼:
$('.c_MyValdiators').each(function() { var x = $(this).attr('id'); var y = document.getElementById(x); ValidatorEnable(y[0], false); });我得到錯誤: val 未定義 $$ Break on this error $$val.enabled = (啟用 != false);\r\n
或者,如果我使用
$('.c_MyValdiators').each(function() { ValidatorEnable($(this), false); OR ValidatorEnable($(this[0]), false); });我得到錯誤:
val.style 未定義 $$ Break on this error $$val.style.visibility = val.isvalid ?“隱藏”:“可見”;\r\n
有什麼想法或建議嗎?
我相信 ValidatorEnable 採用 ASP.net ID 而不是 ASP.net 生成的 ClientID。您還需要在 CodeBehind 中進行有條件的驗證。
這是一個例子:
特別有用的是能夠啟用或禁用驗證器。如果您有驗證只希望在某些場景下啟動,您可能需要在伺服器和客戶端都更改啟動,否則您會發現使用者無法送出頁面。
這是前面的範例,其中包含一個僅在未選中復選框時才應驗證的欄位:
public class Conditional : Page { public HtmlInputCheckBox chkSameAs; public RequiredFieldValidator rfvalShipAddress; public override void Validate() { bool enableShip = !chkSameAs.Checked; rfvalShipAddress.Enabled = enableShip; base.Validate(); } }這是客戶端等效項:
<input type=checkbox runat=server id=chkSameAs onclick="OnChangeSameAs();" >Same as Billing<br> <script language=javascript> function OnChangeSameAs() { var enableShip = !event.srcElement.status; ValidatorEnable(rfvalShipAddress, enableShip); } </script>