2014-01-30 4 views
1

뷰에서 모델로 폼의 유효성을 검사하려면 어떻게해야합니까?백본을 사용하여 폼 유효성 검사

전자 메일과 암호에 6 자 이상이 포함되어 있는지 확인하고 싶습니다. true 인 경우 버튼을 활성화하고 그렇지 않으면 메시지를 throw합니다.

HTML

<form> 
    <input type="text" name="email" placeholder="Type your email here." /> 
    <input type="password" name="password" placeholder="Type your password here." /> 
    <button disabled>Log In</button> 
</form> 

자바 스크립트

var User = new Backbone.Model.extend({ 
}); 

var AppView = Backbone.View.extend({ 
    el: $('form'), 
    events: { 
     'keyup input[name=email]': 'validationScope' 
    }, 
    initialize: function() { 
     this.render(); 
    }, 
    validationScope: function() { 
     console.log('testing'); 
     // What to do here? 
    } 
}); 

var appView = new AppView(); 

재생하려면, 그것은 right here 않습니다. 귀속 문자의 길이가 예를 들어 좋은 초원 6.

에있는 경우

+0

당신 마일에 대한 업데이트입니다 백본 및 유효성 검사 자습서의 일부 양식을 수행하는 것을 고려하고 싶습니다. 이것은 다양한 답변을 가지고 꽤 광범위한 질문입니다. –

답변

2

그냥 확인

validationScope: function(e) { 
     console.log('testing'); 
     // What to do here? 
     var email = e.currentTarget.value; 

     this.$el.find('button').prop('disabled', !(email.length >= 6)); 

    } 

또는 귀하의 경우는 6 자 이상 가지고있는 이메일과 암호를 모두 원하기 때문에

events: { 
     'keyup input[name=email]': 'validationScope', 
     'keyup input[name=password]': 'validationScope' 
    }, 
    initialize: function() { 
     this.render(); 
    }, 
    validationScope: function() { 
     console.log('testing'); 
     // What to do here? 
     var email = this.$el.find('input[name=email]').val(); 
     var password = this.$el.find('input[name=password]').val(); 

     var disable = (email.length < 6 || password.length < 6); 

     this.$el.find('button').prop('disabled',disable); 

    } 

그리고 여기 당신의 fiddle

+0

모델을 통해 유효성을 검사하면 더 간결합니까? –

+0

모델을 가지고 있다는 것을 실제로 보여주지는 못했지만 모든 백본보기에 모델이 필요하지는 않습니다. 또한보기가 모델에 연결되어 있으면보기를 기반으로 모델의 속성을 업데이트해야합니다. 백본이 자동으로 처리하지 못하는 항목입니다 (예 : [backbone.js] 플러그인이 있습니다. .stickit] (http://nytimes.github.io/backbone.stickit/))). – Jack

+0

오류 메시지를 표시하고 싶습니다. 이를 바탕으로 모델이 필요하지 않습니까? 그리고 저는 심지어 모델을 만드는 가장 좋은 방법을 모릅니다. –