2012-12-05 56 views
0

我看着this example但無法實現它。我想知道我是否缺少別的東西。試圖選擇與jquery選擇框的值

注意:response.user_data['admin']不爲空。我檢查了。

任何想法?

感謝

沒有運行線路

$('#select_administrator option[value="'+response.user_data['admin']+'"]'); 
$('#select_administrator option:eq('+response.user_data['admin']+')').attr('selected', 'selected'); 
$('#select_administrator option:eq('+response.user_data['admin']+')').prop('selected', true); 

HTML

<select id="select_administrator" name="select_administrator"> 
    <option value="NO" <?php echo ($administrator == 'NO') ? 'selected="selected"' : null; ?>>NO</option> 
     <option value="YES" <?php echo ($administrator == 'YES') ? 'selected="selected"' : null; ?>>YES</option> 
</select> 

JQUERY

$(document).ready(function() 
{ 
    $("#select_user").change(function(event) 
    { 
     event.preventDefault(); 

     var selected_user = null; 
     selected_user = $(this).val(); 

     $.ajax({ 
       type  : "POST", 
       url  : 'mypage.php', 
       data  : {select_user:selected_user}, 
       dataType : "json", 
       success  : function(response) 
     { 
      if(response.status == "success") 
        { 
         $("#form_errors_jquery").hide(); 

         $("#text_username").val(response.user_data['username']); 

         //response.user_data['admin']; 
         //Should select admin combo here 

     //$('#select_administrator option[value="'+response.user_data['admin']+'"]'); 
     //$('#select_administrator option:eq('+response.user_data['admin']+')').attr('selected', 'selected'); 
     //$('#select_administrator option:eq('+response.user_data['admin']+')').prop('selected', true); 

        } 
        else 
        { 
         $("#form_errors_jquery").html(response.error).fadeIn(1000); 
        } 
     }, 
       error  : function(response) 
       { 
        $("#form_errors_jquery").html("A network error occured").fadeIn(1000); 
     } 

     return false; 
    }); 
}); 
+2

定義「沒有工作」。僅供參考,我相信你可以簡單地做'$('#select_administrator')。val('YES');' –

+0

自動選擇不會發生。沒有錯誤。 – BentCoder

+0

你也可以發佈響應數據嗎? – Magicmarkker

回答

0

對於初學者來說,你的jquery在選擇​​ 時選擇了這個,但是你的html是<select id="select_administrator" name="select_administrator">,所以你可能想要選擇select元素的正確id並重試。

此外,這兩個工作在你的HTML jsfiddle。或者你的response.user_data ['admin']有空格,或者沒有正確返回格式是我的猜測。

$(document).ready(function() { 
    $('#select_administrator option[value="NO"]').prop('selected', true); 
});​ 

$(document).ready(function() { 
    $('#select_administrator option[value="NO"]').attr('selected','selected'); 
});​ 

編輯: 我做了一個jsfiddle是歸結上面你想要做什麼的代碼,這兩個選項沒有在所有的工作:

$('#select_administrator option:eq('+response.user_data['admin']+')').attr('selected', 'selected'); 
$('#select_administrator option:eq('+response.user_data['admin']+')').prop('selected', true); 

但如果添加attr('selected','selected');第一次嘗試使它看起來像這樣:

$('#select_administrator option[value="'+response.user_data['admin']+'"]').attr('selected', 'selected'); 

它工作正常。試試看,讓我知道?

+0

'response.user_data ['admin']'返回YES或NO,不帶空格。我要警惕()它要仔細檢查。該字段的ID屬性也是正確的。 – BentCoder

0

爲了解決這個問題,我最終使用了這個代碼,但爲什麼上面的原始代碼不起作用?

if (response.user_data['admin'] == 'YES') 
{ 
    $('#select_administrator').val('YES'); 
} 
else 
{ 
    $('#select_administrator').val('NO'); 
}