C# 文本框控件中的验证问题
我正在应用程序中使用引导 我正在根据计数动态创建下拉列表和文本框控件,并对这些控件应用验证。但验证并不仅仅适用于这些文本框控件 这是我的密码: Default.aspx.csC# 文本框控件中的验证问题,c#,javascript,jquery,asp.net,validation,C#,Javascript,Jquery,Asp.net,Validation,我正在应用程序中使用引导 我正在根据计数动态创建下拉列表和文本框控件,并对这些控件应用验证。但验证并不仅仅适用于这些文本框控件 这是我的密码: Default.aspx.cs public partial class DefaultClass { public int ddlCount{ get; set; } public int txtCount{ get; set; } protected void Page_Load(object sender, EventArgs e) {
public partial class DefaultClass
{
public int ddlCount{ get; set; }
public int txtCount{ get; set; }
protected void Page_Load(object sender, EventArgs e)
{
}
}
Default.aspx
<div class="form-horizontal">
<%if (ddlCount > 0)
{
for(int i=0;i<ddlCount ;i++)
{%>
<div class="control-group">
<label class="control-label">DropDown <%=i++%>
</label>
<div class="controls">
<select data-val="true" data-val-required="Field is required" name="">
<option value="">--Select--</option>
<option value=1>Value1</option>
<option value=2>Value2</option>
</select>
</div>
</div>
<%
}
}
if (txtCount> 0)
{
for(int i=0;i<txtCount;i++)
{%>
<div class="control-group">
<label class="control-label">Textbox<%=i++%>
</label>
<div class="controls">
<input type="text" id="txtId_<%= i++%>" data-val="true" data-val-required="Field is required"/>
</div>
</div>
<%}
}%>
</div>
<button id="btnSubmit" class="btn btn-success" onclick="Submit();">
Submit</button>
<script type="text/javascript">
$(document).ready(function () {
ConfigureValidator();
});
function ConfigureValidator() {
var basicDetailValidator = $('#Form1').data('validator');
var checkatleastOneCheckboxes = $("input[type='checkbox'][data-val-checkatleastone]");
checkatleastOneCheckboxes.each(function () {
var nameAttr = this.name;
basicDetailValidator.settings.rules[nameAttr].required = true;
basicDetailValidator.settings.messages[nameAttr].required = $(this).attr("data-val-checkatleastone");
});
basicDetailValidator.settings.errorElement = 'span';
basicDetailValidator.settings.errorClass = 'help-inline';
basicDetailValidator.settings.highlight = function (e) {
$(e).closest('.control-group').removeClass('info').addClass('error');
}
basicDetailValidator.settings.success = function (e) {
$(e).closest('.control-group').removeClass('error').addClass('info');
$(e).remove();
}
basicDetailValidator.settings.errorPlacement = function (error, element) {
if (element.is(':checkbox') || element.is(':radio')) {
var controls = element.closest('.controls');
if (controls.find(':checkbox,:radio').length > 1) controls.append(error);
else error.insertAfter(element.nextAll('.lbl:eq(0)').eq(0));
} else if (element.is('.select2')) {
error.insertAfter(element.siblings('[class*="select2-container"]:eq(0)'));
} else {
error.insertAfter(element);
}
};
}
function Submit() {
if (!$('#Form1').valid()) {
return false;
}
}
</script>
0)
{
对于(int i=0;i
下拉列表
--选择--
价值1
价值2
0)
{
对于(int i=0;i
文本框
提交
$(文档).ready(函数(){
ConfigureValidator();
});
函数配置验证器(){
var basicDetailValidator=$('#Form1')。数据('validator');
var checkAtlastone checkbox=$(“输入[type='checkbox'][data val checkAtlastone]”);
选中至少一个复选框。每个(函数(){
var nameAttr=this.name;
basicDetailValidator.settings.rules[nameAttr].required=true;
basicDetailValidator.settings.messages[nameAttr].required=$(this.attr(“data val checkatleastone”);
});
basicDetailValidator.settings.errorElement='span';
basicDetailValidator.settings.errorClass='help inline';
basicDetailValidator.settings.highlight=函数(e){
$(e).最近的('.control group').removeClass('info').addClass('error');
}
basicDetailValidator.settings.success=函数(e){
$(e).最近的('.control group').removeClass('error').addClass('info');
$(e).删除();
}
basicDetailValidator.settings.errorPlacement=函数(错误,元素){
if(element.is(':checkbox')| | element.is(':radio')){
var controls=element.closest('.controls');
if(controls.find(':checkbox,:radio').length>1)controls.append(error);
else错误.insertAfter(element.nextAll('.lbl:eq(0)).eq(0));
}else if(element.is('.select2')){
错误.insertAfter(element.sippines('[class*=“select2 container”]:eq(0)');
}否则{
错误。插入符(元素);
}
};
}
函数提交(){
如果(!$('#Form1').valid()){
返回false;
}
}
我正在使用js/jquery.validate.min.js、js/uncompressed/jquery.validate.js和js/uncompressed/jquery.validate.unobtrusive.js
验证不能单独用于文本框控件
请帮帮我。尝试加入name属性,可以吗
<input type="text" name="text_box" id="txtId_<%= i++%>" data-val="true" data-val-required="Field is required"/>
我想这是因为您在页面加载(onLoad)
时只调用了一次ConfigureValidator();
,当您动态添加控件时,必须在添加所有控件后调用一次。我同意。但是如何调用该ConfigureValidator()在轻松创建所有控件之后,在动态创建控件的forloops之后调用ConfigureValidator()
。您可以在关闭if子句0){…}
&0)
之前调用此函数,但我已经编写了ConfigureValidator()在javascript中,当我尝试在if子句0{…}之前包含ConfigureValidator时,它会显示errorSorry我的错误,我想您可以尝试这样做,像这样调用函数ConfigureValidator();
在if子句的右大括号之前,请记住将此语句放在scriptlet标记()