2015-02-10 240 views
1

在下面的代碼中,如果我選擇try1,它應該搜索db並在輸入框以及單選按鈕中顯示相應的值。此處輸入框值正確顯示,但單選按鈕不起作用。需要幫助基於下拉選擇使用jquery選擇單選按鈕

腳本:

$("#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); 

} 
+2

什麼是'test_code2'? – Sadikhasan 2015-02-10 08:35:34

+1

從字段'try' – 2015-02-10 09:00:47

回答

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); 
} 

因爲你只設置使用.val()功能和單選按鈕的id值,而不是

$('#ok').val(opt.test_code2); 

不是唯一的,所以你必須採取radio value的選擇。如果你想根據它的值檢查你的單選按鈕,那麼你必須使用.prop()函數。

Demo

+1

從數據庫中提取的單選按鈕(ok或not_ok)的值請現在檢查html部分。我已更新。是啊,兩個單選按鈕中的名稱和ID都相同,那麼只會選擇一個單選按鈕。 – 2015-02-10 09:15:54

+0

用'Demo'檢查我的更新答案。 – Sadikhasan 2015-02-10 09:19:41

+1

謝謝。它的工作原理 – 2015-02-10 09:55:34