2013-08-28 69 views
1

這一個繼續讓我陷入一個循環......只有在Chrome中才會發生這種情況。Chrome瀏覽器選擇框在頁面加載時不顯示選定的值

我有一個「升級頁面」,用戶可以點擊一個計劃然後轉到表單。我在這裏傳遞?plan =#然後讓它選擇合適的選項。出於某種原因,在Chrome中,它將它選中,因爲它在檢查元素中顯示...但是,它不顯示在選擇框中。

我正在嘗試一堆不同的方式使這項工作在鉻,與jQuery的,PHP,HTML,任何我能想到的,但似乎沒有工作。

這裏是jQuery代碼:

$(document).ready(function() { 
    var split = location.search.replace('?', '').split('=') 
    var getPlan = split[1]; 
    console.log(getPlan); 
    if (getPlan == 1) { 
     $("#memberPlan").val('premium'); 
    } else { 
     $("#memberPlan").val('vip'); 
    } 

    function vip() { 
     var list = "";   
     list = "<option value=\"3\">VIP: per month ($9.00)</option>\n"; 
     list += "<option value=\"4\">VIP: every 6 months ($47.00)</option>\n"; 
     list += "<option value=\"5\">VIP: per year ($89.00)</option>\n"; 
     $("#service").html(list); 
    } 
    function premium() { 
     var list = "";   
     list = "<option value=\"0\">Premium: per month ($5.00)</option>\n"; 
     list += "<option value=\"1\">Premium: every 6 months ($27.00)</option>\n";   
     list += "<option value=\"2\">Premium: per year ($49.00)</option>\n"; 
     $("#service").html(list); 
    } 

    var currentPlan = $("#currentPlan").text().toLowerCase(); 
    $('#memberPlan').attr("value", currentPlan); 

    if ($("#memberPlan").val() == "premium") { 
     premium(); 
    } 
    if ($("#memberPlan").val() == "vip") { 
     vip(); 
    } 
    $("#memberPlan").change(function() { 
     if ($("#memberPlan option:selected").val() == 'vip'){ 
      vip(); 
     } 
     if ($("#memberPlan option:selected").val() == 'premium'){ 
      premium(); 
     } 
    }); 
}); 

這裏是HTML/PHP($ payPlan爲$ _GET [ '計劃']):

<select name="member_plan" id="memberPlan"> 
    <option value="premium"<?php echo $payPlan == 1 ? ' selected':''; ?>>Premium</option> 
    <option value="vip"<?php echo $payPlan == 2 ? ' selected':''; ?>>VIP</option> 
</select> 

在此先感謝,任何幫助認識:)

+0

您確定網址中的計劃值爲1或2嗎? –

回答

0

試試這個

$("#memberPlan").change(function() { 
    if ($(this).val() == 'vip'){ 
     vip(); 
    } 
    if ($(this).val() == 'premium'){ 
     premium(); 
    } 
}); 
0

有時我會發現「on」處理程序綁定到具有更一致行爲的元素。嘗試?

$("#memberPlan").on('change', function() { 
    if ($(this).val() == 'vip'){ 
     vip(); 
    } 
    if ($(this).val() == 'premium'){ 
     premium(); 
    } 
}); 
相關問題