的ControlToValidate我用我的jQuery插件與asp.net自定義驗證的頁面:asp.net自定義驗證不具有屬性回發
<asp:TextBox ID="txtModel" runat="server" />
<asp:CustomValidator ID="modelValidator" Display="Static" ControlToValidate="txtModel" ClientValidationFunction="validateDetails" EnableClientScript="true" runat="server" Text="My Message" />
<script type="text/javascript">
function validateDetails(sender, args) {
var controltovalidate = $(sender).attr('controltovalidate');
args.IsValid = $('#' + controltovalidate).data('MyPlugin').hasValidValue();
}
$(function() {
$('#<%=txtModel.ClientID %>').MyPlugin({
validator: $('#<%=modelValidator.ClientID %>') //In order to execute validation check when values inserted
});
});
</script>
正如你所看到的,是除了驗證在執行回傳,我想在插件中執行驗證器,因此我在插件選項中傳遞了驗證器。
每當插件執行驗證(使用ValidatorValidate(options.validator.get(0));
的validateDetails功能完美的作品。
的問題是後回來了。當我按下一個按鈕,使得回傳上var controltovalidate = $(sender).attr('controltovalidate');
的validateDetails功能失敗,因爲發件人突然沒有。controltovalidate
屬性,這是爲什麼我怎樣才能讓後上的功能的工作原理回到
@mshsayem:不是。我使用此validateDetails函數僅適用於modelValidator驗證程序。 – Naor 2012-04-03 05:47:19
如果它僅適用於一個驗證程序,爲什麼您會收到此續訂像那樣?只要'$(「#txtModel」)'應該可以,對不對?像'args.IsValid = $('#txtModel')。data('MyPlugin')。hasValidValue();'? – mshsayem 2012-04-03 05:48:16
@mshsayem:你是對的,但我更喜歡validateDetails函數不依賴於元素ID。而且,validateDetails函數保留在不同的js文件中,因此我沒有渲染的txtModel元素的客戶端ID。 – Naor 2012-04-03 05:52:26