Я использую jQuery + asp.net webforms, также я использую плагин JQuery Validation и плагин Fancybox. Мой код отлично работает, когда я использую плагины отдельно. Моя веб-форма предназначена для регистрации пользователей.Показать Fancybox после успешной проверки формы
Я использую плагин проверки для проверки формы перед отправкой на сервер, форма проверяется и отправляется, когда пользователь нажимает кнопку изображения asp.net (которая отображается как тег ввода = «образ» html-тег, идентификатор = "btnSave"). Он работает так, как ожидалось.
Плагин fancybox используется для отображения PDF-документа, который генерируется динамически на другой веб-форме. Он работает, когда пользователь нажимает на якорь (элемент «a», ID = «btnShowFancybox»).
Я хочу проверить форму, используя плагин проверки, когда пользователь нажимает кнопку btnShowFancybox, и если результаты проверки правильны, покажите fancybox для отображения pdf-документа. Если проверка не завершена, я хочу показать пользователю сообщение (предупреждение). Я не смог достичь этой функциональности.
Это то, что я уже закодированы:
ГОЛОВА:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#aspnetForm").validate({
//commented for simplicity
});
});
</script>
</head>
ФОРМА:
<asp:ImageButton ID="btnSave" runat="server" ImageUrl="~/content/img/save.png"
OnClick="btnSave_Click"
OnClientClick="return jQuery('#aspnetForm').validate().form();" />
<a id="btnShowFancybox" class="iframe" href="generatePDF.aspx">
<img src="content/img/showPDF.png" />
</a>
мне нужно осуществить проверку формы, после того, как пользователь клики btnShowFancybox, если проверка не завершена, не отображается fancybox. Я попытался это:
//changed href attribute of btnShowFancybox to "#", and inserted this code
//after: jQuery(document).ready(function() {
//and before: jQuery("#aspnetForm").validate({
//what I'm trying to do here is to set the proper href only if form is valid,
//then to call my fancybox to show pdf to the user, because the call to .fancybox didn't work I tried trigger the click event directly. and.. didn't work.
jQuery("#btnShowFancybox").click(function (e) {
var validForm = jQuery('#aspnetForm').validate().form();
alert(validForm);
if(validForm) {
jQuery("#btnShowFancybox").attr("href", "generatePDF.aspx");
jQuery("#btnShowFancybox").fancybox({
'frameWidth' : 1000,
'frameHeight': 700,
'overlayShow': true,
'hideOnContentClick': false
});
jQuery("#btnShowFancybox").fancybox().trigger('click');
}
else {
alert("form is not valid");
jQuery("#btnShowFancybox").attr("href", "#");
}
});
Я также пытался создать функцию JS и установить OnClick атрибут btnShowFancybox для вызова этой функции. функция проверяет форму и, если она претерпела попытку jQuery («# btnShowFancybox»). fancybox (..., но это не сработало ни с одной. Чтобы уточнить, btnSave не должен показывать fancybox, только btnShowFancybox должен.
Помощь требуется пожалуйста ...
Кто-нибудь есть какие-либо идеи? – madval