Jquery 如何检查单选按钮

Jquery 如何检查单选按钮,jquery,mysql,json,Jquery,Mysql,Json,我有以下MySQL表: | id | Title | Windows | Linux | IDE | GUI | RAD | ------------------------------------------------------------ | 1 | Software_1 | 1 | 0 | 1 | 0 | 0 | -------------------------------------------------------

我有以下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数据库来填充表单。到目前为止,我能够填充输入字段、文本区域和复选框,但我完全无法填充单选按钮。请注意,mySQL为以下复选框(Windows、Linux)存储布尔值 和单选按钮(IDE、GUI、RAD)

这是从数据库检索数据并将其转换为JSON的PHP部分:

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);
} 
表格如下:

<form name="form" id="edit_review" method ="post" action="review.php">  
    Language name: <input type="text" size="34" value="" name="title"/>
    Windows <input type="checkbox" name="windows" />
    Linux <input type="checkbox" name="linux" />

    IDE <input type="radio" name="environment" id="ide" value="ide"/>
    GUI <input type="radio" name="environment" id="gui" value="gui"/>
    RAD <input type="radio" name="environment" id="rad" value="rad"/>
</form>
字符串:

$(":input[name='" + key + "']").attr("checked", jsonOBJ[key]);
仅适用于复选框。单选按钮的“名称”是“环境”,并且所有三个单选按钮的名称必须相同。所以,当然,上面这一行是行不通的。我尝试将其更改为:

$(":input[id='" + key + "']").attr("checked", jsonOBJ[key]);
我在单选按钮中添加了“id”,如下所示:

IDE <input type="radio" name="environment" id="ide" value="ide"/>
IDE

而且我注意到(使用“警报”)选中了正确的复选框,但一旦循环继续,就会立即取消选中。为什么单选按钮未选中而复选框未选中?我该如何修复它呢?

这似乎是一个愚蠢的建议,但您是否正确地组合了单选按钮

如果单选按钮本身未选中,可能是因为正在处理同一组中的另一个单选按钮

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

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

只能检查一个:

IDE <input type="radio" name="environment" id="ide" value="ide"/>
GUI <input type="radio" name="environment" id="ide" value="ide"/>
RAD <input type="radio" name="environment" id="ide" value="ide"/>
IDE
桂
拉德
所有选项都可以选中(尽管单选按钮的作用不明显):

IDE
桂
拉德

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

这取决于您使用的jQuery版本。请看:你的答案

您正在使用哪个版本的jquery。这取决于您是使用.attr还是.prop。请看这个答案了解更多信息:哦,我的上帝!解决了的!在这上面花了两天!谢谢你,我把.attr改成了.prop,它突然起作用了。很高兴我能帮上忙。我将把它添加为“解决方案”,因此如果你能把它作为答案,也许有一天它可以帮助其他正在搜索的人!您好,JackalopeZero,正如您在我上面的代码(“表单”部分)中所看到的,这三个单选按钮正确地组合在一起(它们都有相同的名称),但每个单选按钮都有不同的ID和值。
IDE <input type="radio" name="environment" id="ide" value="ide"/>
GUI <input type="radio" name="environment" id="ide" value="ide"/>
RAD <input type="radio" name="environment" id="ide" value="ide"/>
IDE <input type="radio" name="environment1" id="ide" value="ide"/>
GUI <input type="radio" name="environment2" id="ide" value="ide"/>
RAD <input type="radio" name="environment3" id="ide" value="ide"/>