使用jquery基于下拉选择选择单选按钮

时间:2015-02-10 08:31:07

标签: javascript php jquery mysql ajax

在下面的代码中,如果我选择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);

}

1 个答案:

答案 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