Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于JSON响应的单选按钮检查_Javascript_Jquery_Html_Checkbox_Radio Button - Fatal编程技术网

Javascript 基于JSON响应的单选按钮检查

Javascript 基于JSON响应的单选按钮检查,javascript,jquery,html,checkbox,radio-button,Javascript,Jquery,Html,Checkbox,Radio Button,我试图将一些值从json字符串加载到各种输入/字段。我的解决方案对于文本输入和文本字段非常有效,但我无法让它与单选按钮和复选框一起工作。 你能帮我做这个吗 在HTML中,我有如下字段: <textarea rows="3" name="testfield"></textarea> <input type="text" name="testinput"> <label><input class="radio" type="radio" nam

我试图将一些值从json字符串加载到各种输入/字段。我的解决方案对于文本输入和文本字段非常有效,但我无法让它与单选按钮和复选框一起工作。 你能帮我做这个吗

在HTML中,我有如下字段:

<textarea  rows="3" name="testfield"></textarea>
<input type="text" name="testinput">
<label><input class="radio" type="radio" name="testrad" value="one" checked><span>1</span></label>
<label><input class="radio" type="radio" name="testrad" value="two" ><span>2</span></label>
<label><input class="radio" type="radio" name="testrad2" value="one" checked><span>1</span></label>
<label><input class="radio" type="radio" name="testrad2" value="two" ><span>2</span></label>
<label><input class="radio" type="radio" name="testrad2" value="three" ><span>2</span></label>

以下是您正在寻找的演示:

var key='testrad2'; var val=‘三’;//让我们说三个答案 变量字段=$[name=+键; field.eachfunction{ 如果$this.val==val{ $this.attr'checked',true; }否则{ $this.attr'checked',false; } }; 1. 2. 1. 2.
2这是因为您有多个具有相同名称属性的输入。当您使用$[name=+key和.val时,它只比较第一个输入,因此条件字段.val==data[key]始终为false。我最初认为问题的一部分是属性选择器上的括号没有关闭:$[Name=+KEY;.]但是它看起来仍然有效。我从你的问题中学到了一些新的东西:“FraveDoCICA我刚刚发现它在Firefox和China浏览器上工作,但是在Safari上不行,所以我们仍然可以认为这是不正确的,谢谢你,先生!这就是我要找的。
$.ajax({
    type: "POST",
    url: "test.php",
    success: function (echo) {
        var data = JSON.parse(echo);
        for (key in data) {
            var field = $("[name=" + key);                           
            if (field.attr("type") == "radio" || field.attr("type") == "checkbox") {                                
                if ( field.val() == data[key]) {                                   
                    field.prop("checked", true) 
                }
            }else {
                $("[name=" + key).val(data[key]);
            }
        }
    }
});