如何检查单选按钮

我有以下MySQL表:

| id | Title | Windows | Linux | IDE | GUI | RAD | ------------------------------------------------------------ | 1 | Software_1 | 1 | 0 | 1 | 0 | 0 | ------------------------------------------------------------ | 2 | Software_2 | 0 | 1 | 0 | 1 | 0 | 

我想通过查询mySQL数据库来填充表单。 到目前为止,我能够填充输入字段,textareas和复选框,但我绝对坚持使用radiobuttons 。 请注意mySQL存储以下布尔值:checkboxes(Windows,Linux)和radiobuttons(IDE,GUI,RAD)

这是PHP部分,它从dB中检索数据并将其转换为JSON:

 while($review = mysql_fetch_array($qry)) { $arr = array('id_field' => $review['id'], 'title' => $review['title'], 'homepage' => $review['link_homepage'], 'windows' => $review['Windows'] == "1", 'linux' => $review['Linux'] == "1", 'ide' => $review['IDE'] == "1", 'gui' => $review['GUI'] == "1", 'rad' => $review['RAD'] == "1" ); echo json_encode($arr); } 

这是forms:

 
Language name: Windows Linux IDE GUI RAD

这是jQuery代码:

 $(".editlink").click(function() { $.get("lists.php", {param2: $(this).attr('id')}, function(data) { jsonOBJ = jQuery.parseJSON(data); for (var key in jsonOBJ) { $(":input[name='" + key + "']").val(jsonOBJ[key]); $(":input[name='" + key + "']").attr("checked", jsonOBJ[key]); } } ); return false; }); 

字符串:

 $(":input[name='" + key + "']").attr("checked", jsonOBJ[key]); 

仅适用于复选框。 Radiobuttons’name’是’environment’,并且对于所有三个radiobutton必须相同。 所以,当然上面的行不起作用。 我尝试将其更改为:

 $(":input[id='" + key + "']").attr("checked", jsonOBJ[key]); 

我将“ id ”添加到radiobuttons,如下所示:

 IDE  

我注意到(使用’alert’)检查了正确的复选框,但是一旦LOOP继续,就立即取消选中 。 为什么单选按钮未选中且复选框不是? 我该如何解决?

这取决于您使用的jquery的版本。 请看: 如何在jQuery中重置radiobuttons,以便没有检查你的答案。

这看起来似乎是一个愚蠢的建议,但你有没有正确分组您的单选按钮?

如果单选按钮未取消选中,则可能是因为处理了同一组中的另一个单选按钮。

看起来好像是在尝试检查同一组中的所有单选按钮,这是不可能的。 只能检查一个。

如果要检查所有选项,必须使用复选框或将每个单选按钮的name属性设置为不同的选项

只能检查一个:

 IDE  GUI  RAD  

所有都可以检查(虽然失去了单选按钮的点):

 IDE  GUI  RAD  

它也可能是通过jQuery更改checked属性(无论是否真实)将停用其他单选按钮,因此可能尝试使用jQuery的find()来检查相关的单选按钮而不是循环它们。