防止回发表格锚点击 - >当我们有onserverclick属性时

时间:2011-06-27 13:10:10

标签: jquery asp.net postback submit anchor

我的aspx(html)代码如下所示:

这是第一个按钮(应该像普通按钮一样,我使用锚点因为一些不错的css工作):

                <p id="PaymentParag">
                    <a id="PaymentLink" onclick="SubmitForm();" name="PaymentLink" runat="server"
                        onserverclick="PaymentLink_Click" alt="Payment" title="Payment"></a>
                </p>

如你所见,我在onserverclick上有一些服务器端代码...

这是另一个按钮:

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

和我的jquery代码:

    function SubmitForm() {
        $('#form1').submit();
    }

    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    $(function () {
        $('#form1').submit(function (e) {
            alert('a');
            var error = [false, false, false, false, false];

            var text1 = '';
            var text2 = '';

            var radtxtEmail = $find("<%= radtxtEmail.ClientID %>");
            text1 = radtxtEmail.get_value();

            var radMaskedtxtMobile = $find("<%= radMaskedtxtMobile.ClientID %>");
            text2 = radMaskedtxtMobile.get_value();

            var ErrorsInsideMessageBox = $('#ErrorsInsideMessageBox');
            ErrorsInsideMessageBox.html('');

            var FormMessages = $('#FormMessages');

            if (text1 == '' && text2 == '') {
                error[0] = true;
            }
            if (error[0]) {
                ErrorsInsideMessageBox.append(FormMessages.html());
                e.preventDefault();
            }
        });
    });

点击第二个按钮会导致提交和相关的回发...
当error [0] = true时,我们只提交,而不是回发...
所以,似乎关于第二个按钮(常规asp.net按钮)的每件事情都是正常的 但我的问题是锚(提交和回发)...
当我点击它时我们只回发,而不是提交,因为添加了runat =“server”和onserverclick =“PaymentLink_Click”...
所以我添加了onclick =“SubmitForm();”提交form1 ...
但此时我不知道为什么我们仍然有错误[0] =真的回发 - &gt; e.preventDefault();

评论后编辑:
我用下面的链接按钮替换了那个锚:

 <asp:LinkButton onClientclick="SubmitForm();" ID="PaymentLink" runat="server" onclick="PaymentLink_Click"></asp:LinkButton>

但我不知道为什么linkBut​​ton没有提交(如锚)所以我被迫添加onClientclick =“SubmitForm();
这样做之后,当错误[0] =真时,我仍然有回发;
我怎么能阻止这个回发?

提前致谢

1 个答案:

答案 0 :(得分:0)

更新

现在明白你的意思。

提交和回发是一样的想法。

这条线让我很困惑。当你期望onserverclick运行?当有提交时,这意味着回发。

<a id="PaymentLink" onclick="SubmitForm();" name="PaymentLink" runat="server"
  onserverclick="PaymentLink_Click" alt="Payment" title="Payment">

我认为您需要更改页面的流逻辑。