在按钮提交时触发所需的字段验证器
Required field validator to be fired on button submit
我有一个下拉列表,当我选择OPTION值一个文本框出现。问题是,当我直接提交所需的文件错误给我的ie下拉框和文本框的消息。它应该只给出下拉菜单的错误。只要我从下拉菜单中选择选项,它直接给我文本框的错误信息。它应该给我后,当我不把任何值在文本框中,直接提交的形式。我尝试了代码,但它没有按要求工作。请参阅下面的代码:
HTML for下拉菜单&文本框
<asp:DropDownList ID="ddlGraduation" runat="server" CssClass="txtfld-popup_drp1"></asp:DropDownList>
<asp:RequiredFieldValidator CssClass="error_msg" ID="reqGraduation" runat="server" ControlToValidate="ddlGraduation" ErrorMessage="Please select graduation details" InitialValue="--Select--" SetFocusOnError="true"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtOther" runat="server" CssClass="txtfld-popup_p1" Style="display: none;"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqOther" runat="server" ControlToValidate="txtOther" ErrorMessage="Please specify your qualification" Enabled="false"></asp:RequiredFieldValidator>
另外,请参阅javascript代码来处理文本框的可见性&触发所需字段:-
<script type="text/javascript">
$(document).ready(function () {
$("select[id*=ctl00_ContentPlaceHolder1_ddlGraduation]").change(function () {
if ($('#ctl00_ContentPlaceHolder1_ddlGraduation').val() == 'Other') {
$("[id*=ctl00_ContentPlaceHolder1_txtOther]").show();
var valEmail = $("[id*=reqOther]");
ValidatorEnable(valEmail[0],true);
}
else {
var valEmail = $("[id*=reqOther]");
ValidatorEnable(valEmail[0],
false);
$("[id*=ctl00_ContentPlaceHolder1_txtOther]").hide();
}
});
});
请帮
一旦您的验证触发,那么您就不能在不输入有效数据的情况下提交表单。还有一点,RequiredFieldValidator每次都会触发不管你是否想要显示文本框。如果您隐藏文本框并且验证不会触发,则不应该是这样。你的问题的解决方案是保持RequiredFieldValidator仅下拉和删除它的文本框,并添加一个自定义验证器,你可以检查字段是空或不基于条件,自定义验证器将触发点击"提交"按钮。
<asp:CustomValidator ID="reqOther" runat="server" EnableClientScript="true"
ErrorMessage="Please specify your qualification"
ClientValidationFunction="TextBoxQualification"
OnServerValidate="TextBoxQualification_Validate" Display="Dynamic" >
</asp:CustomValidator>
客户端验证函数应该是这样的:
function TextBoxQualification(sender, args) {
if(your condition) //that if you want to validate the textbox or not based on the selection of dropdown.
{
args.IsValid = false;
}
}
如果你愿意,你也可以在服务器端编写相同的函数。在客户端和服务器端都进行验证是很好的,但如果你不想在服务器端进行验证,那么也可以。
相关文章:
- Rad网格编辑模式通过选中复选框时的java脚本启用禁用所需的字段验证器
- 回发前所需的字段验证程序不起作用
- 将字段设置为有条件地使用所需的字段验证器
- .NET MVC 5 不显眼的禁用字段验证
- Liferay网络表单组件字段验证
- 输入字段验证的键代码函数在chrome中没有按预期工作
- MVC 5防止隐藏字段的必需字段验证
- jQuery字段验证-是否为空,以及正确的值
- JS如何捕获基于键入然后删除的字符的字段验证逻辑
- Javascript Wordpress字段验证匹配
- 字段验证器,它不允许移动到下一个字段
- 在更改另一个字段时触发Yii字段验证
- 进度条和所需字段验证器
- 字段验证:字段需要 JavaScript 正则表达式
- JS 字段验证 - 循环遍历对象,每个字段有三个数据注意事项
- Javascript 空字段验证 - 无法读取未定义的属性“值”
- 有没有办法知道 .net 必填字段验证器是否从 js 启用或禁用
- 避免在字段验证失败时调用 AJAX onsuccess
- 使用 jQuery 使用 asp.net 必填字段验证器验证必填字段
- 如何使用 Angular.js/Javascript 为 url 添加输入字段验证