2010-08-13 8 views
14

이런 종류의 질문을 할 수 있을지 확신하지 못했지만 this을 Meta Stackoverflow에서보고 나면 이런 종류의 질문이 괜찮습니다. 음, 내 질문에 :자바 스크립트 폼 유효성 검사 프레임 워크 : 검토 요청

몇 달 전 Javascript에서 유효성 검사 프레임 워크를 썼습니다. 이미 jQuery Validation과 같은 유효성 검사 프레임 워크가 있지만 유효성 검사에 다른 접근 방식을 사용하고 싶었습니다. 현재의 접근법은 양식 요소에 대한 유효성 검사를 수행하기 위해 Javascript 코드 작성과 관련이 있습니다. 양식 소스 코드를 살펴보면 각 요소에 대해 유효성 검사가 어떤 것인지를 즉시 알 수 없습니다. 어느 정도까지는 다른 종류의 유효성 검사를 지정하는 CSS 클래스를 사용하여이를 해결할 수 있습니다. 그러나 유효성 검사 (오류 메시지 등)의 동작을 쉽게 사용자 정의 할 수 없기 때문에 이것조차도 제한적이라고 느꼈습니다. Java에서 JSR-303 Bean Validation 또는 Hibernate Validator을 사용하여 주석 기반 유효성 검사와 같은 작업을 수행하려고했습니다.

HTML5를 사용하면 요소에 맞춤 속성을 추가 할 수 있으므로 유효성 검사를 위해 양식 요소에 "주석을 추가"할 수 있다고 생각했습니다. 그래서, 기본적으로, 나는이 함께했다 :

  • 정의 제약이 요소에 대한 DOM을 검사하고 이러한 제약을 결합 : 염두에 기본적인 아이디어와

    <input id = "myInput" 
         name = "myInput" 
         type = "text" 
         class = "regula-validation" 
         data-constraints = '@NotEmpty @IsNumeric @Between(min=1, max=5)' /> 
    

    , 나는 자바 스크립트 프레임 워크를 생성 요소에

  • 맞춤 제약 작성
  • 이 제약
  • 바인딩의 유효성 제약 프로그래밍 결합을 허용 허용
  • 또한

는 프레임 워크는 다음과 같은 특징이 있습니다

  • 유효성 검사 그룹에 지정된 것과 유사한 JSR을-303 오류 메시지를 내 프레임 워크를 만든 후에는

에 대한

  • 보간 나는 그것에 대한 피드백과 리뷰를 얻으려고했지만 피드백과 리뷰를 얻기 위해 어디로 가야할 지 확신 할 수 없었다. 나는 그것에 대해 몇 가지 블로그 게시물을 썼고 Digg와 Reddit (프로그래밍 섹션)에 많은 행운을 남기지 않고 게시했습니다. 소수의 사람들이 관심을 보였지만 나는 그 이상을 얻지 못했습니다.

    최근 직장 내에서 레거시 코드베이스 (JSP 및 서블릿)를 현대화하고이를 Spring MVC로 옮겨 왔습니다. 유효성 검사의 대화가 올 때, 나는 나의 고위 건축가에게 나의 프레임 워크를 던졌다. 나는 약간의 통합과 개념 증명을 해 보았고 관심이있어 보였고 프로젝트에 추가 할 수있는 기회를주었습니다. 지금까지는 이것이 유효성 검사를 수행하는 데 도움이된다는 자신 만의 겸손한 견해를 가지고 있었기 때문에 내 아이디어와 프레임 워크에 약간의 장점이있을 수 있다는 자신감을 갖게되었습니다. 그러나, 나는 아직도 더 많은 참여와 틀이 필요했다. Stackoverflow가 이런 종류의 질문을 허용한다는 것을 알게 된 후에 나는 그것을 건설적인 비판, 의견 및 피드백을 얻기 위해 여기에 게시하기로 결정했습니다.

    지연이 더 이상 없으므로 Regula을 소개하고 싶습니다. 내가 제공 한 링크는 프레임 워크에 대한 모든 문서가있는 GitHub의 위키로 이동합니다. here에서 최신 버전 (v1.1.0)을 다운로드 할 수 있습니다.

    귀하의 의견을 기다리십시오.

    내가 클라이언트 측 유효성 검사에 콩 검증 주석을, 즉, 봄 내 프레임 워크를 통합 번역의 아이디어 장난 삼아 생각해했다

    즉시 관련이없는 일부 추가 정보를 제공합니다. 최근에는 유효성 검사 그룹에서도이 작업을 수행 할 수있었습니다 (클라이언트 측의 그룹간에 상속 관계에 대한 지원은 현재 없음). 이렇게하면 유효성 검증 제한 조건으로 필드 특성에 주석을 달면 클라이언트 측 유효성 검증 코드가 자동으로 생성됩니다. 그러나, 저는 봄 초보자입니다. 그래서 제 방법은 아마도 깨끗하지 않을 것입니다. 나는 이것에 대한 의견을 좀 듣고 싶습니다. 누군가가 관심이 있다면 알려주세요. 이상적으로 (그리고 나는 너무 허세가 아니길 바래) 나는 봄 사람들에게 연락하여 그들이 이것에 관심이 있는지보고 싶다.

  • +0

    정말 운동을하는 유스 케이스가 없습니다. 그러나 그것은 좋은 개념처럼 보이기 때문에 나는 투표하고 좋아할 것입니다. 나는 사람들이 그것을 만드는 것을보고 궁금하다. 웹 프레임 워크, wicket을 선택하면 데이터를 제출하고 서버에서 아약스 요청을 통해 의견을 제출할 수있는 기능을 제공하기 때문에 대부분 자바 스크립트 유효성 검사가 필요하지 않습니다. ASP.NET과 같은 다른 프레임 워크는 동적 피드백에 대한 클라이언트 측 유효성 검사를 권장합니다 (양식 제출시 서버 유효성 검사를 항상 수행해야하지만). – RMorrisey

    +0

    @RMorrisey 귀하의 의견에 감사드립니다! 나는 개찰구를 시험해 보지 않았지만, 언젠가 그것을보고 싶다. JSF는 또한 사용자가 설명하는 것과 유사한 기능을 수행한다고 생각합니다. 직장에서 우리는 서버 쪽에서 만 유효성을 검증합니다. 내 프레임 워크를 사용하면 사용자가 설명하는 것처럼 클라이언트 쪽에서 할 수있었습니다. 유효성 검사를 수행하는 AJAX 요청을 만드는 유효성 검사기로 사용자 지정 제약 조건이 있습니다. 의견을 보내 주셔서 다시 한 번 감사드립니다. –

    +0

    제가 주제를 벗어났다는 것을 알고 있습니다.하지만 어떻게 데이터 제약 조건에 주석을 삽입 했습니까? 비슷한 일을하는 방법을 보면서 질문에 나섰다. (레귤라는 내 필요에 충분하다.) –

    답변

    7

    나는 이미 그것을 많이 좋아한다. 그것은 나의 html을 깨끗하게 유지하고 커스텀 validator를 만드는 능력은 훌륭하다. 내가 추가 한 것은 검증을 바인딩 기능을 제출하기위한 짧은 손이고, jQuery 플러그인로 싸서 :

    if (jQuery) { 
        (function($) 
        { 
         $.regula = function(formId, callback) 
         { 
          regula.bind(); 
    
          $("#" + formId).submit(function() 
          { 
           var validationResults = regula.validate(); 
    
           if (validationResults.length > 0) 
           { 
            if (callback) 
             callback(validationResults); 
    
            return false; 
           } 
    
           return true; 
          }); 
         }; 
        })(jQuery); 
    } 
    

    Infact는 내가 어떻게 청소와 그 감동으로, 난 그냥 blogged 그것에 대해를했습니다 그리고 그것은 쉽다. 나는 여전히 당신의 소스를 통해 시간을 보내고, 어떻게 성취했는지 볼 수 있지만, 좋은 시작이 될 것입니다.

    프레임 워크 통합과 관련하여 저는 주로 ASP.NET MVC를 사용하고 있습니다. 서버 측 유효성 검사 로직을 클라이언트 측 제약 조건으로 변환하는 방법을 살펴 보는 것도 흥미로울 것입니다. 다음 달에 볼 수있는 무언가가 있습니다.

    +0

    피드백과 블로그 게시물 Matthew에게 감사드립니다! 나는 주로 Java 측면에서 작업합니다. 나는 .NET을 한 번도 해보지 않았지만, 그것에 관심을 갖고 싶습니다. –

    +1

    나는 .NET Framework의 DataAnnotations 네임 스페이스에서 제공하는 특성을 기반으로 데이터 제약 조건을 자동으로 생성하는 방법을 조금 더 알아 냈습니다. 당신이 자바 녀석이라는 것을 알고 있지만, 내가 어떻게했는지보고 싶다면 오늘 밤에 블로그를 업데이트 할 것입니다. 나는 봄에 콩으로 그것을하는 것에 대한 개념이 본질적으로 자바 풍미와 비슷하다고 생각할 것이다 ... –