我一直在尝试对我的文本框进行验证,唯一有效的是设置
autoPostBack=true
并在回发textbox_change事件中添加
textBox3.Validator.Enabled = true;
但是我注意到chrome和edge dosent总是触发回发事件,然后验证永远不会被激活。并且只需添加验证即可为这么小的事情做回发用户友好。它必须是一种更简单的方式..
所以我有这个
<asp:TextBox runat="server" ID="txt1"/> <--- Dont need validation on that one, when starting to type values are populated from a ajax call
<asp:TextBox runat="server" ID="txt2"/> <--- Here i want to add validation when txt1 contains something, no validation should fire if the user steps in on txt1 and then out without writing text
<asp:RequiredFieldValidator ID="txt2Validator" runat="server" Enabled="false" ErrorMessage="" Display="Static" SetFocusOnError="True" ValidationGroup="valgroup1" ControlToValidate="txt2"/>
<asp:DropDownList ID="ddl1" runat="server" /> <--- also validate this only when txt1 contains text
<asp:RequiredFieldValidator ID="ddl1Validator" runat="server" Enabled="false" ErrorMessage="" Display="Static" SetFocusOnError="True" ValidationGroup="valgroup1" ControlToValidate="ddl1"/>
当txt1包含可能带有onblur事件的文本时,在jquery中有一种方法可以将必需的字段验证器设置为Enabled = true吗?
部分解决
好的,所以我有点快,不要为自己考虑...... 我一整天都在努力寻找我的ajax请求中的错误,当这个问题得到解决时,我已经没想到果汁,只是放弃了,并且问了这个问题。但是,由于知道这个肩膀是一个问题,我尝试了som编码并最终得到了这个。有用!是! 我唯一能做的就是如果我只能在txt1包含文本时添加验证,现在验证启用为儿子,因为我在txt1中然后再次出来。有没有if.txt1.contains.text然后用jQuery做什么?
<script type=text/javascript>
$(document).ready(function () {
$("#<%= txt1.ClientID %>").blur(function () {
ValidatorEnable(document.getElementById('<%=txt2Validator.ClientID%>'), true);
ValidatorEnable(document.getElementById('<%=ddl1Validator.ClientID%>'), true);
});
});
</script>
答案 0 :(得分:0)
好的....再次快速提出一个新问题..
解决我的问题:
<script type=text/javascript>
$(document).ready(function () {
$("#<%= txt1.ClientID %>").blur(function () {
if ($("#<%= txt1.ClientID %>").val().length > 0) {
ValidatorEnable(document.getElementById('<%=txt2Validator.ClientID%>'), true);
ValidatorEnable(document.getElementById('<%=ddl1Validator.ClientID%>'), true);
}
});
});
</script>
也许不是最好的aproatch但它有效。
所以问题就是......当你知道答案时,为什么要问一个问题? 也许它可以帮助别人。 (哎呀再说一遍,回答了我自己的问题)