我们有一个包含许多必填字段的表单。当我在一个必填字段上并且按下回车键时,表单不会提交。但是,如果我所在的字段不是必需的,那么按enter键确实会提交表单。这是有问题的,因为提交表单会触发验证,从而在顶部显示验证摘要。如果我在一个必填字段上,它不会触发此验证。它似乎确实启动了自己的验证并显示了我的错误文本(只是一个星号),但人们没有看到这一点。
有人知道为什么非必填字段输入键会提交表格,而必填字段输入密钥不会?
根据您所描述的,听起来像是在使用服务器端验证。尝试在验证器上将EnableClientScript
设置为false,这将禁用客户端验证。
如果这还不够,您可以在点击提交按钮时覆盖验证,如下所示:
<script type="text/javascript">
validateForm = function(){
var isValid = Page_ClientValidate("");
if (isValid){
//some custom logic if needed
}
return true; //do the postback even if validation fails?
//otherwise return isValid
}
</script>
<asp:Button ID="Button1" runat="server" OnClientClick="return validateForm();" ... />