넉 아웃과 함께 트위터 부트 스트랩 버튼 그룹을 사용하고 있습니다. 나는 아주 단순한 것을 간과하고있는 것처럼 느껴지지만,이 인스턴스에서는 checked
바인딩을 사용할 수 없었습니다.넉 아웃 체크 바인딩이 작동하지 않음
나는 여기에서 문제를 재현하는 jsFiddle를 가지고있다 : http://jsfiddle.net/n5SBa/. 여기
는 바이올린의 코드입니다 : 예에서<div class="form-group">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary" data-bind="click: ClickScore.bind($data, '0'), css: { active: Score() == '0' }">
<input type="radio" name="score" value="0" data-bind="checked: Score" /> 0
</label>
<label class="btn btn-primary" data-bind="click: ClickScore.bind($data, '1'), css: { active: Score() == '1' }">
<input type="radio" name="score" value="1" data-bind="checked: Score" /> 1
</label>
<label class="btn btn-primary" data-bind="click: ClickScore.bind($data, '2'), css: { active: Score() == '2' }">
<input type="radio" name="score" value="2" data-bind="checked: Score" /> 2
</label>
<label class="btn btn-primary" data-bind="click: ClickScore.bind($data, '3'), css: { active: Score() == '3' }">
<input type="radio" name="score" value="3" data-bind="checked: Score" /> 3
</label>
<label class="btn btn-primary" data-bind="click: ClickScore.bind($data, '4'), css: { active: Score() == '4' }">
<input type="radio" name="score" value="4" data-bind="checked: Score" /> 4
</label>
<label class="btn btn-primary" data-bind="click: ClickScore.bind($data, '5'), css: { active: Score() == '5' }">
<input type="radio" name="score" value="5" data-bind="checked: Score" /> 5
</label>
</div>
</div>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
자바 스크립트
function SurveyViewModel() {
var self = this;
self.Score = ko.observable();
//Events
self.ClickScore = function (score) {
self.Score(score);
};
//Computations
self.RecommendationLabel = ko.computed(function() {
if (self.Score() < 8) {
return "Some question?";
} else {
return "Some other question?";
}
});
self.DOMSelectedScore = ko.computed(function() {
if ($('input[name=score]:checked').val()) {
return $('input[name=score]:checked').val();
} else {
return 'no value!';
}
});
};
var surveyViewModel = new SurveyViewModel();
ko.applyBindings(surveyViewModel);
HTML, 나는 실제 라디오 버튼을 얻을 수 없습니다 해요 내 양식에서 제대로 제출할 수 있도록 DOM에서 선택하십시오.
실제로 문자열에 전달할 코드 설정이 있습니다. 내 부분에 오타가있었습니다. (DOM 선택 값은 아직 정의되지 않았습니다.) –
콘솔을 열고'$ ('input [name = score] : checked')'를 실행하고 올바른 항목을 반환합니다. –
답변이 도움이 되었기 때문에 +1을드립니다. 그러나 나는 문제가 내 생각보다 조금 복잡하게 보였기 때문에 내 대답을 추가하고있다. –