2013-12-23 3 views
1

Я использую bootstrap в своем приложении.Проблема проверки в элементах управления текстовыми полями

Я создаю выпадающий список и элементы управления текстовыми полями динамически на основе подсчета и применения проверки для этих элементов управления. Но проверка не работает только для этих элементов управления текстовыми полями.

Вот мой код:

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> 

Я использую js/jquery.validate.min.js , js/uncompressed/jquery.validate.js and js/uncompressed/jquery.validate.unobtrusive.js.

Проверка не работает только для элементов управления текстовыми полями.

Пожалуйста, помогите мне.

+0

Я думаю, причина это потому, что вы назвали 'ConfigureValidator()' только один раз при загрузке страницы '(загрузки)', когда ваш добавив управляет динамически, вы должны вызвать это один раз после того, как все элементы управления будут добавлены. – dreamweiver

+0

Я согласен. Но как вызвать этот ConfigureValidator() после создания всех элементов управления – Deepak

+0

, это просто, вызовите 'ConfigureValidator()' после forloops, которые динамически создают элементы управления. u может поместить этот вызов функции перед закрытием предложения if <% if (ddlCount> 0) {...} '&' <% if (txtCount> 0) ', – dreamweiver

ответ

1

попытка, включив имя атрибута может он работать

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

благодарит за то, что он отлично работает. – Deepak

Смежные вопросы