0

所以我有很多名称相同但 ID 不同的单选按钮,我不想在页面加载时选择其中的一个。所需按钮的 ID 保存到数据库中。我已经为实际的 ajax 调用尝试过这种解决方案,但可惜它没有用。

$.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            var buttonID = "#"+data.buttonID; // data.buttonID = "button5"
            $(buttonID).attr("checked", true);
        }
});

而 HTML 部分是这种方式,除了有更多的按钮:

<input type="radio" id="button1" name="example" value="value1"/>
<input type="radio" id="button2" name="example" value="value2"/>
<input type="radio" id="button3" name="example" value="value3"/>
<input type="radio" id="button4" name="example" value="value4"/>
<input type="radio" id="button5" name="example" value="value5"/>
4

2 回答 2

1

仔细检查你返回的 JSON,你的整体方法是正确的,你可以在这里测试它:http: //jsfiddle.net/nick_craver/KuK3Z/

我敢打赌,您的代码data.buttonID并不您想象的那样,或者您的代码没有在 a 中运行document.ready,如下所示:

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            var buttonID = "#"+data.buttonID; // data.buttonID = "button5"
            $(buttonID).attr("checked", true);
        }
  });
});

如果它没有在 a 中运行document.ready并且您的 AJAX 调用在您的元素准备好之前完成,则$("#button5")选择器将找不到任何要检查的内容。或者,如果您可以在渲染页面时仅checked="checked"在正确的内部<input />渲染,并完全消除 AJAX 调用,那就更好了。

于 2010-07-27T11:12:48.537 回答
0

尝试检查您的数据响应:

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            alert(data['buttonID']);
        }
  });
});

如果未定义,请检查您的 php 或我的最后一个解决方案,否则请尝试:

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "json",
        data: dataString,
        success: function(data)
        {
            $("#"+data['buttonID']).attr("checked",true);
        }
  });
});

一旦将Json返回给jquery,我遇到了一个问题,json字符串返回了许多斜杠......如果第一个解决方案给你一个错误,请尝试这个(这将报告从服务器返回的字符串而不解码json) :

$(function() {
  $.ajax({
        type: "POST",
        url: "load_config.php",
        dataType: "text",
        data: dataString,
        success: function(data)
        {
            alert(data);
        }
  });
});

对不起我的英语不好。告诉我一些如果它有效...

于 2010-07-27T11:16:17.423 回答