这可能是一个愚蠢的问题,但我在这里是一个初学者......
我在asp.net中创建了一个表单,并且所有字段都使用验证控件点击图像按钮进行验证。它正常工作。之后我向按钮添加了一个事件。这是该按钮的代码。 / p>
<asp:ImageButton ID="Submit" runat="server" OnClick="submit_Clicked" ValidationGroup="AddSchoolValidationGroup" CausesValidation="true" ImageUrl="~/Styles/images/submit-btn.png" OnClientClick="submitClicked" />
该事件的目的是将表单中的所有值提交到数据库。我的问题是,在将onClick事件添加到按钮后,验证尚未发生。我希望这些onClick事件仅在表格已经成功验证。任何人都可以指导我..谢谢你。
答案 0 :(得分:2)
确保您对所有验证控件使用相同的验证组。
此外,您可以使用OnClientClick
事件来调用验证。
<asp:ImageButton ID="Submit" runat="server" OnClick="submit_Clicked" ValidationGroup="AddSchoolValidationGroup" CausesValidation="true" ImageUrl="~/Styles/images/submit-btn.png" OnClientClick="return Page_ClientValidate('AddSchoolValidationGroup');" />
答案 1 :(得分:1)
您可以使用javascript功能
function validateForm() {
if (document.getElementById('txtName').value == '')
{
ValidatorEnable(document.getElementById("rfvName"), true) // rfvName is id of validator
return false; }
}
并在客户端点击图片按钮
调用该功能 <asp:ImageButton ID="Submit" runat="server" OnClientClick="validateForm();" OnClick="submit_Clicked" ValidationGroup="AddSchoolValidationGroup" CausesValidation="true" ImageUrl="~/Styles/images/submit-btn.png" />
答案 2 :(得分:1)
您需要在提交前验证页面。请为按钮添加属性。
protected void Page_Load(object sender, EventArgs e)
{
Submit.Attributes.Add("onclick", "javascript:if(Page_ClientValidate('AddSchoolValidationGroup')){return true;}else{return false;}");
}
由于你在onclient点击中有一个方法“submitClicked”,你可以调用相同的内部Page_ClientValidate并删除现有的“OnClientClick”属性。
protected void Page_Load(object sender, EventArgs e)
{
Submit.Attributes.Add("onclick", "javascript:if(Page_ClientValidate('AddSchoolValidationGroup')){submitClicked(); return true;}else{return false;}");
}
答案 3 :(得分:0)
将OnClientClick="submitClicked"
替换为 OnClientClick="return submitClicked();"
function submitClicked()
{
if (document.getElementById('txtname') != '') {
return true;
}
else {
alert('Please Enter Name');
return false;
}
}
因此,在验证所有验证之前,不会调用服务器端事件。