Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本框控件中的验证问题_C#_Javascript_Jquery_Asp.net_Validation - Fatal编程技术网

C# 文本框控件中的验证问题

C# 文本框控件中的验证问题,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) {

我正在应用程序中使用引导

我正在根据计数动态创建下拉列表和文本框控件,并对这些控件应用验证。但验证并不仅仅适用于这些文本框控件

这是我的密码:

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)
 {
 }
}
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标记
()