0

我有一个由第三方提供的表格,可以放在注册页面上。它工作正常,但看起来很容易受到机器人发送垃圾邮件的影响。我正在尝试添加验证码,但表单在我的验证触发之前发布。这是在 asp.net 网络表单 C# 4.0 上。

表格看起来像这样

<form method="post" name="upsideContactUsForm-1343676638998" action="https://3rdPartySite" id="form173" runat="server">
<input id="field0" value="" type="text" name="email" />
<!--  ..Other fields like first name, last name, etc -->

<input type="submit", value="submit"></input>

<script src="https://3rdPartySiteValidation.js" type="text/javascript"></script>
<script type="text/javascript">
    var field0 = new LiveValidation("field0", { validMessage: "", onlyOnBlur: true });
    field0.add(Validate.Presence, { failureMessage: "This field is required" });
    field0.add(Validate.Email, { failureMessage: "Please enter a valid email address" }); 
    //..Validation rules for the fields
</script>
</form>

我用 asp:button 替换了提交按钮,并添加了带有警告标签的验证码。我正在检查这样的服务器端,看看我是否可以阻止页面触发但没有运气。

protected void Submit_Click(object sender, EventArgs e) {
if (Page.IsValid)
{
    CaptchaMsg.Text = "Your response is correct!";
}
else
{
    CaptchaMsg.Text = "Your response is incorrect!";

}

}

单击验证码中没有任何内容的提交按钮使表单发布,我被重定向到表单操作中设置的页面。这是我在发布表格时预期会发生的事情,但我不确定要采取什么方向来解决这个问题。我可以添加一个它们最初被重定向到的传递页面,但这似乎很草率。我还研究了用 ajax 回答我的验证码,但如果禁用了 javascript,这将不起作用。

有什么建议么?

4

0 回答 0