2011-12-28 4 views
0

에서 폼 입력에 액세스하려면 다음어떻게 같은 HTML이 knockoutjs

<form data-bind="submit: mySubmit> 
    <input type="text" ... 

을 그리고 난에 입력의 값에 액세스하려는 제출

mySubmit = function() { 
    var textValue = ???; 
    alert(textValue); 
} 

내가 어떻게 할 수 있습니까? 나는 텍스트 필드에 일종의 ID를 부여하는 것으로 괜찮지 만,이 ID가 전역이되는 것을 원하지 않습니다 (예를 들어 한 페이지에 여러 가지 양식이있을 수 있습니다).

답변

2

녹아웃 (Knockout) 관점에서 보면 입력의 가치를보기 모델에 나타낼 수 있습니다. 이는 입력에 data-bind="value: myValue"을 추가하는 것을 의미합니다. 그런 다음 mySubmit 메소드의보기 모델에서 액세스합니다.

뭔가 같은 : 나는 그것을 권장하지만, 실제로 녹아웃에 의해 첫 번째 인자에서 양식 요소를 전달 방법을 제출하지 않을 http://jsfiddle.net/rniemeyer/sAyET

(정말 현재의 데이터 및 이벤트를 전달해야하지만 현재 그 것이다 요소).

따라서 다음과 같이 할 수 있습니다. http://jsfiddle.net/rniemeyer/sAyET/1/. 이상적으로는 뷰 모델에 DOM/뷰에 대한 참조가 없어야하므로 꼭 필요한 경우가 아니라면이 옵션을 사용하지 않는 것이 좋습니다.

+0

감사합니다. 나는 당신이 제안한 해결책을 가지고 갔다. 나는 양방향 바인딩이 필요 없기 때문에 그것을 생각하지 않았습니다, 그러나 그것은 매우 간단합니다! – Gnurfos