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

标签 c# javascript jquery asp.net validation

我在我的应用程序中使用 Bootstrap 。

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

这是我的代码:

默认.aspx.cs

public partial class DefaultClass
{
 public int ddlCount{ get; set; }
 public int txtCount{ get; set; }
 protected void Page_Load(object sender, EventArgs e)
 {
 }
}

默认.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>

我正在使用js/jquery.validate.min.js , js/uncompressed/jquery.validate.js and js/uncompressed/jquery.validate.unobtrusive.js .

验证不适用于单独的文本框控件。

请帮帮我。

最佳答案

尝试包含名称属性可能会起作用

 <input type="text" name="text_box" id="txtId_<%= i++%>" data-val="true" data-val-required="Field is required"/>

关于c# - 文本框控件中的验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20738208/

相关文章:

c# - "{{" "}}"之间的紫色文本是什么

c# - 如何在运行时动态修改 NHibernate 加载查询?事件监听器?拦截器?

javascript - 参数解构(相当于python的double-splat)

javascript - 添加引用现有命名空间的 XHTML 元素

jquery 循环进度显示不正确的百分比

c# - 如何操作整数值的特定数字?

c# 重新启动 for 循环

javascript - `this instanceof String` 和 `"foo"instanceof String` 有什么区别?

Javascript 显示/隐藏 Div 不起作用。试图模拟 VirginMedia 联系我们页面(无 jQuery)

javascript - 抓取和刷卡