所以我有很多具有相同名称但不同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"/>
答案 0 :(得分:1)
仔细检查你的JSON回来,你的整体方法是正确的,你可以在这里测试:http://jsfiddle.net/nick_craver/KuK3Z/
我敢打赌你的data.buttonID
不是完全你认为它是什么,或者你的代码没有在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);
}
});
});
如果它没有在document.ready
中运行并且您的元素准备好之前您的AJAX调用已完成,则$("#button5")
选择器将找不到要检查的内容。或者,如果您可以在呈现页面时在正确的checked="checked"
内呈现<input />
,并完全取消AJAX调用,那就更好了。
答案 1 :(得分: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);
}
});
});
抱歉我的英文。告诉我一些是否有效...