我有一组RadioButton dojo dijits,我的任务是根据请求响应json检查其中一个。 Json将具有与group1中的RadioButtons值对应的值 例如: { "组1":" 1" }
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="group1" value="1"/> <label>1</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="group1" value="2"/> <label>2</label>
<input type="radio" data-dojo-type="dijit/form/RadioButton" name="group1" value="3"/> <label>3</label>
我该如何以良好的方式做到这一点?
答案 0 :(得分:3)
如果您的RadioButton小部件恰好在dijit/form/Form
范围内,到目前为止最方便的方法是设置表单value
,因为dijit/form/_FormMixin
& #39; s值setter会自动将值映射到相应的RadioButton小部件。
form.set('value', { group1: '1' });
(即使表单有其他字段,使用只有一个属性的对象调用set('value')
只会更新表单中的那一个字段。)
除非您选择此选项(如果您不在dijit/form/Form
并且因某些原因无法使用),您可以执行类似于trincot建议的内容,但是因为您&#39 ;重新使用小部件,您需要设置适当的小部件checked
属性,而不仅仅是输入节点:
registry.getEnclosingWidget(query('[name=group1][value=1]')[0]).set('checked', true);
这里有一个fiddle展示了两种方法。
答案 1 :(得分:-1)
以下是使用class="btn btn-success btn-lg"
dojo
从function test(json) {
var obj = dojo.fromJson(json);
for (prop in obj) {
dojo.query('input[name="' + prop + '"][value="' + obj[prop] + '"]').attr('checked', 'checked');
}
}
解码后,json
是您收到的字符串,而obj
是相应的对象。此代码遍历该对象的属性(例如&#34; group1&#34;),然后通过JSON
和css
找到带有name
选择器的元素,然后设置找到的元素的value
属性(如果有)。
我把它放在fiddle中,按下按钮后调用checked
函数。