我有一个webform应用程序
在母版页中,我有一个窗体
<body class="tile-1-bg">
<form id="form1" runat="server">
在我的page.aspx中
<div class="control-group" runat="server" id="divNome">
<label for="txtNome" class="control-label">Nome o Ragione Sociale*</label>
<div class="controls">
<asp:TextBox runat="server" ID="txtNome" class="form-control input-sm" required></asp:TextBox>
</div>
</div>
<asp:Linkbutton runat="server" ID="lnkBtnRegistrati" class="btn btn-default btn-lg btn-block" Text="REGISTRATI" OnClientClick="if(checkForm())return true; else return false;" OnClick="lnkBtnRegistrati_Click"></asp:Linkbutton>
我想调用一个Javascript函数来模拟按钮提交,如果某些验证出错并在表单域上显示错误,则返回false。
function checkForm()
{
?
}
我该怎么做呢?
发布于 2017-10-06 10:40:15
您可以创建自己的验证并返回值。您需要将OnclientClick更改为OnClientClick="return checkForm()"
<div id="errorSummary" style="display: none;">For is invalid!</div>
<script type="text/javascript">
function checkForm() {
var formIsValid = false;
//do your form validation
if ($("#<%= txtNome.ClientID %>").val() != "") {
formIsValid = true;
}
//show or hide the error message
if (!formIsValid) {
$("#errorSummary").show();
} else {
$("#errorSummary").show();
}
//return the validation result
return formIsValid;
}
</script>
但是,您也可以使用Validaton控件和ValidationSummary执行相同的操作
<asp:TextBox runat="server" ID="txtNome"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage="Input cannot be empty" ControlToValidate="txtNome" Display="Dynamic">
</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:LinkButton runat="server" ID="lnkBtnRegistrati" Text="REGISTRATI"></asp:LinkButton>
请注意,只有最新的浏览器才支持输入字段的required
属性,请参见https://www.w3schools.com/TAgs/att_input_required.asp
发布于 2017-10-06 10:34:07
你想要的是返回checkform
的结果,你可以自己在checkform
方法中处理它的状态:
Aspx代码
更改自
<asp:Linkbutton runat="server" ID="lnkBtnRegistrati" class="btn btn-default btn-lg btn-block" Text="REGISTRATI" OnClientClick="if(checkForm())return true; else return false;" OnClick="lnkBtnRegistrati_Click"></asp:Linkbutton>
至
<asp:Linkbutton runat="server" ID="lnkBtnRegistrati" class="btn btn-default
btn-lg btn-block" Text="REGISTRATION" OnClientClick="return checkform();"
OnClick="lnkBtnRegistrati_Click"></asp:Linkbutton>
在javascript方法中:
function checkForm()
{
if(true) // your condition to check
{
return true;
}
else{
return false;
}
}
说明:
在标记中,无论您的条件是否满足,Onclientclick
都将返回,如果您的条件满足,那么您将作为return true
返回,反之亦然。所以通过这种方式你可以实现你想要的
发布于 2017-10-06 10:44:44
您可以在表单上调用submit(),这将触发浏览器验证。它没有任何返回值,但会自动提交表单。您的代码没有显示您需要在此之后执行其他操作,因此在OnClientClick事件中返回true或false是不必要的。
document.getElementById("form1").submit();
但是,除非您遗漏了一个部分,否则将链接按钮替换为
<input type="submit" runat="server" />
https://stackoverflow.com/questions/46546273
复制