2013-04-18 7 views
6

मैं वास्तव में बेवकूफ लग रहा है काम नहीं करता है, लेकिन यह काम :)Knockout.js बाध्यकारी रेडियो समूह

http://jsfiddle.net/btkmR/

मैं इस सरल फिडल बनाया सिर्फ साबित होता है कि मैं में कुछ कमी नहीं कर रहा हूँ नहीं कर सकता मेरी बड़ी परियोजना

HTML:

<div> 
    Preferred flavor 
    <div><input type="radio" name="flavorGroup" data-bind="checked: cherryOn" /> Cherry</div> 
    <div><input type="radio" name="flavorGroup" data-bind="checked: almondOn" /> Almond</div> 
    <div><input type="radio" name="flavorGroup" data-bind="checked: mgOn" /> Monosodium Glutamate</div> 
</div> 

जे एस:

var viewModel = { 
    cherryOn: ko.observable(true); 
    almondOn: ko.observable(false); 
    mgOn: ko.observable(false); 
}; 

ko.applyBindings(viewModel); 

मैं Cherry को देखने के लिए शुरू पर चयनित उम्मीद ..

+2

जेरेमी के जवाब के अलावा, अपने बेला नहीं है नॉकआउट का संदर्भ, और आपकी व्यूमोडेल परिभाषा अवैध है। ऑब्जेक्ट शाब्दिक नोटेशन का उपयोग करते समय, आप अर्द्ध-कॉलन नहीं, अल्पविराम का उपयोग करते हैं। – Tyrsius

उत्तर

16

नॉकआउट के दस्तावेज़ से (http://knockoutjs.com/documentation/checked-binding.html):

के लिए रेडियो बी uttons, KO तत्व को सेट करने के लिए सेट करेगा अगर केवल यदि पैरामीटर मान रेडियो बटन नोड के मान विशेषता के बराबर है।

उदाहरण: http://jsfiddle.net/btkmR/2/

<div> 
    Preferred flavor 
    <div><input type="radio" name="flavorGroup" value="cherry" data-bind="checked: flavor" /> Cherry</div> 
    <div><input type="radio" name="flavorGroup" value="almond" data-bind="checked: flavor" /> Almond</div> 
    <div><input type="radio" name="flavorGroup" value="Monosodium" data-bind="checked: flavor" /> Monosodium Glutamate</div> 
</div> 

var viewModel = { 
    flavor: ko.observable("cherry") 
}; 

ko.applyBindings(viewModel); 
+0

आह! धन्यवाद। मैं सोच रहा था कि यह बुलियन है। अब यह समझ में आता है – katit

11

जो लोग, मेरी तरह, यह गतिशील बाध्य रेडियो समूह नाम के साथ काम करने और मूल्यों को प्राप्त करने के लिए, data-bind में बाइंडिंग के आदेश पर ध्यान देना संघर्ष कर रहे हैं के लिए।

बाद value और name के रूप में काम नहीं करेगा,checked के बाद बाध्य कर रहे हैं:

<input 
    type="radio" 
    data-bind=" 
     checked: $parent.correctAnswerId, 
     attr: {name: 'correctAnswerFor' + $parent.id, value: id} 
    " 
/> 

सही आदेश है:

 attr: {name: 'correctAnswerFor' + $parent.id, value: id}, 
     checked: $parent.correctAnswerId 
+0

वाह ... वहाँ एक अच्छा थोड़ा गचाचा है, धन्यवाद। – Andrew

संबंधित मुद्दे