2013-06-19 1 views
0

asp.net mvc3 응용 프로그램에서 작업하고 있습니다. 강력하게 유형화 된 면도기 뷰를 사용하고 필요한 데이터를 저장할 여러 숨겨진 입력 필드가 있습니다. 클라이언트 측 유효성 검사를 수행하려면 텍스트 필드가 필요한지, 숨겨진 입력에 저장되는 데이터인지 확인해야하며, texbox 값이 필요한 경우 검사를 수행해야합니다.스팬의 요소 반복 및 특정 입력 필드 값 선택

그래서 논리적으로 나는 내가 IsRequired 숨겨진 입력 필드가 true

  • 하는 경우로 설정되어있는 경우 특정 클래스
  • 검사에서 모든 범위의 요소를 통해

    1. 반복 처리를 할 필요가 세 단계가 있다고 생각 위의 사실, 다음 텍스트 상자의 값을 확인하십시오

    지금까지 너무 좋아. 이 작업을 여러 번 시도했지만 jQuery의 능력보다 훨씬 높은 것으로 보입니다. 그 이유는 여기에서 도움을 구하는 이유입니다.

    다음은 하나의 범위에 대해 생성 된 HTML입니다. - 난의 값을 확인해야하는 각 기간에 대한

    <span class="checkFloat">

    <span class="checkFloat"> 
    Value before : 
    <br> 
    
    <input class="text-box single-line" type="text" value="" name="[29].FieldValue"> 
    
    <input type="hidden" value="118" name="[29].Id" data-val-required="The Id field is required." data-val-number="The field Id must be a number." data-val="true"> 
    
    <input type="hidden" value="RowId_6" name="[29].DocRowId" data-val-required="The DocRowId field is required." data-val-length-max="40" data-val-length="The field DocRowId must be a string with a maximum length of 40." data-val="true"> 
    
    <input type="hidden" value="True" name="[29].IsRequired" data-val-required="The IsRequired field is required." data-val="true"> 
    
    <input type="hidden" value="3" name="[29].ColumnNo" data-val-required="The ColumnNo field is required." data-val-number="The field ColumnNo must be a number." data-val="true"> 
    
    <input type="hidden" value="6" name="[29].RowNo" data-val-required="The RowNo field is required." data-val-number="The field RowNo must be a number." data-val="true"> 
    
    </span> 
    

    그래서 내가 필요로하는 것은이 같은 모든 범위의 요소를 반복하는 것입니다 : 다른 스팬의 코드는 유사한 클래스 만이 다른 것입니다 입력 -

    <input class="text-box single-line" type="text" value="" name="[29].FieldValue"> 
    

    -<input type="hidden" value="True" name="[29].IsRequired" data-val-required="The IsRequired field is required." data-val="true">

    그리고이 경우에는 내가 값을 확인해야합니다 같은 값에 해당하는 경우 나는 그 자체로 많은 시도를했지만, 나는 가까이에 있다고 생각하지는 않는다.하지만 사람들이 그가 요구하는 문제에 약간의 노력을 기울인 것을 볼 때 훨씬 더 좋다는 것을 알게된다. 이것이 나의 것이다. 텍스트 상자의 값을 시도하고 얻을 수있는 마지막 시도가 :

    $(".checkULong input[type='hidden'][value='True'][name$='IsRequired']").each(function() { 
          alert($(this).val()); 
          if (!mathFunctions.isInt($(this).val())) { 
           $(this).focus(); 
           throw "The filed can not be empty!"; 
          } 
    }); 
    
  • +0

    그래서 뭔가를 발견했습니다. 지금 당장은이 솔루션이 합법적인지를 설명해주십시오 :'$ ("checkUsing"[value = 'True'] [name $ = 'IsRequired'] ")"각 (function() { //console.log ($ (this) .parent(). children (': first') .Val()), ' – Leron

    답변

    1

    당신이 jQuery를 방해 검증을 사용하여 어떻게 든을 것 같다,하지만이 시간에, 당신은 검증이 작동 할 수있는 해결 방법을 만들고있다. 내 생각에, 좋은 생각은 this topic에 설명 된 조건부 유효성 검사를 사용하는 것입니다. 기본적으로 특별한 "RequiredIf"속성을 사용하여 모델을 꾸미십시오. 그런 다음 자바 스크립트 유효성 검사 어댑터가 작성되어 클라이언트 측에 대한 유효성 검사 규칙을 준비합니다. (필요한 단계 중 하나는 IClientValidatable을 구현하는 것일 수 있습니다). 나는 당신의 사건에 대한 해결책이 아니라는 것을 압니다. 그러나 그것은 당신을 올바른 방향으로 인도 할 것입니다.

    +0

    고마워, 모든 도움을 주실 수 있습니다. – Leron