Asp.net

使用 jquery 禁用 asp.net 驗證器

  • December 11, 2017

我正在嘗試使用 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>

參考:http: //msdn.microsoft.com/en-us/library/aa479045.aspx

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