我的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>
但我不知道为什么linkButton没有提交(如锚)所以我被迫添加onClientclick =“SubmitForm();
这样做之后,当错误[0] =真时,我仍然有回发;
我怎么能阻止这个回发?
提前致谢
答案 0 :(得分:0)
现在明白你的意思。
提交和回发是一样的想法。
这条线让我很困惑。当你期望onserverclick运行?当有提交时,这意味着回发。
<a id="PaymentLink" onclick="SubmitForm();" name="PaymentLink" runat="server"
onserverclick="PaymentLink_Click" alt="Payment" title="Payment">
我认为您需要更改页面的流逻辑。