使用Jquery

时间:2016-02-14 07:52:13

标签: javascript jquery radio-button

我正在尝试将值匹配的单选按钮设置为正在返回的对象的属性,并根据值检查按钮,但我的代码对我不起作用。

我有带单选按钮的HTML

<input type="radio" name="subject1" value="0" checked />
<input type="radio" name="subject1" value="1" />
<input type="radio" name="subject1" value="2" />

<input type="radio" name="subject2" value="0" checked />
<input type="radio" name="subject2" value="1" />
<input type="radio" name="subject2" value="2" />

<input type="radio" name="subject3" value="0" checked />
<input type="radio" name="subject3" value="1" />
<input type="radio" name="subject3" value="2" />

我正在返回一个对象:

obj = { CustomObjectKey: 2, subject1: "2", subject2: "0", subject3: "1", subject4: "0", ..... } 

我正在尝试设置单选按钮并根据返回的数据进行检查。所有值在开头都设置为0,但需要根据属性和值进行更改。

我有我的Jquery脚本:

$.each(obj, function(key, value) {
$("input[name='+key+'][value='+value+']").prop('checked', true);
});

因此对于subject1,应检查值为“2”的单选按钮

但我的收音机按钮只是停留在“0”

3 个答案:

答案 0 :(得分:0)

each中的字符串连接错误。将double quotes(")替换为single quotes(')

$.each(obj, function (key, value) {
    $('input[name='+key+'][value='+value+']').prop('checked', true);
});

完整代码

&#13;
&#13;
var obj = { CustomObjectKey: 2, subject1: "2", subject2: "0", subject3: "1", subject4: "0" };

$.each(obj, function (key, value) {
    $('input[name='+key+'][value='+value+']').prop('checked', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="radio" name="subject1" value="0" checked />
<input type="radio" name="subject1" value="1" />
<input type="radio" name="subject1" value="2" />

<input type="radio" name="subject2" value="0" checked />
<input type="radio" name="subject2" value="1" />
<input type="radio" name="subject2" value="2" />

<input type="radio" name="subject3" value="0" checked />
<input type="radio" name="subject3" value="1" />
<input type="radio" name="subject3" value="2" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

只需将您的单引号(')更改为双引号(“),如下所示:

$("input[name="+key+"][value="+value+"]").prop('checked', true);

答案 2 :(得分:0)

经过数小时的研究和测试后,我发现我的解决方案包括将JQuery库更新为2.2.0.min.js,因为@Nadimul De Cj建议并修改代码:

$.each(user_pref, function(key, value){
$("input:radio[name="+key+"][value="+value+"]").prop("checked", true);
});

使代码有效。