2013-08-28 68 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(); 
    } 
}); 
相关问题