在下面的代码中,如果我选择try1,它应该搜索db并在输入框中显示相应的值以及单选按钮。此处输入框值正确显示但单选按钮不起作用。需要帮助
脚本:
$("#test1").change(function()
{
$.post('test_file.php', {test_name: $(this).val() },
function(opt){
$("#name33").val(opt.test_code);
$('#ok').val(opt.test_code2);
}, 'json');
});
HTML
<table><tr>
<td>
<select name="test1" id="test1" >
<option >try1</option>
<option >try2</option>
</select>
</td>
<td>
<input type="text" name="name33" id="name" />
</td>
<td>
<input type="radio" name="ok" id="ok" value="ok"/>ok
<input type="radio" name="ok" id="ok" value="not_ok"/>Not ok
</td>
test_file.php
$db_sql = $db->queryUniqueObject("SELECT * FROM client WHERE test_name='".$_POST['test_name']."'" );
$test_code1=$db_sql->name;
$test_code2=$db_sql->try;
if($db_sql!=NULL)
{
$arr = array ("test_code1"=>"$test_code1","test_code2"=>"$test_code2");
echo json_encode($arr);
}
else
{
$arr1 = array ("no"=>"no");
echo json_encode($arr1);
}
答案 0 :(得分:1)
使用
if(opt.test_code2=="ok")
{
$('input:radio[value=ok]').prop("checked",true);
}
else if(opt.test_code2=="not_ok")
{
$('input:radio[value=not_ok]').prop("checked",true);
}
而不是
$('#ok').val(opt.test_code2);
由于您只使用
.val()
功能设置了值,并且单选按钮的id
不是唯一的,因此您必须将radio value
作为选择器。如果您想根据其值检查单选按钮,则必须使用.prop()
功能。
<强> Demo 强>