更改页面加载时的选择选项值

问题描述 投票:0回答:6

我有一个包含区域列表的下拉列表,我希望下拉菜单根据我指定的变量值自动选择项目。

这是代码。

<select name="_sft_location[]" class="sf-input-select" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all">Location A</option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic">Location B</option>
</select>        

因此,例如,如果我有一个PHP变量$defaultLocation = "Location B",下拉列表应该从页面加载列表中自动选择“位置B”。

希望这很清楚。

javascript php jquery select option
6个回答
0
投票

你需要使用selected<option>属性

因此,如果需要选择位置A和位置B,您的代码将是:

如果您的选项是从PHP生成运行时,则需要在那里添加if条件。

<select name="_sft_location[]" class="sf-input-select" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all" selected="selected">Location A</option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic" selected="selected">Location B</option>
</select>   

0
投票

三元选项将有助于实现您想要的,如果您想深入了解选择元素默认属性,这里是link

<select class="sf-input-select" name="_sft_location[]" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">
        All Locations
    </option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all">
        Location A
    </option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic"
    <?php (!empty($defaultLocation) && $defaultLocation == 'Location B' ? 'selected':'')
    ?>>
        Location B
    </option>
</select>

0
投票

试试这个,希望它会对你有所帮助

$(".sf-input-select select").val("Location B");

0
投票

感谢帮助。我最终得到了这个解决方案

    jQuery(document).ready(function( $ ) {
     $('select').find('option[value=Location B]').attr('selected','selected');
    });

干杯,


0
投票

不需要javascript / jquery来执行此操作,而您只是想根据此更改onload更改没有代码的选择

使用简单的PHP函数,你可以做到这一点。你可以内联它而不需要创建一个函数,但我更喜欢创建一个函数

<?php 
  function defaultLocation($location){
     global $defaultLocation;
     return ($defaultLocation == $location) ? 'selected' : '';
  }
?>

<select name="_sft_location[]" class="sf-input-select" title="">
    <option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
    <option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all" <?php echo defaultLocation('Location A'); ?>>Location A</option>
    <option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic" <?php echo defaultLocation('Location B'); ?>>Location B</option>
</select>     

0
投票

通常我们使用下拉值而不是文本,即'all'或'vic'而不是'Location A'或'Location B'。无论如何,您还可以使用'if'语句:

<select name="_sft_location[]" class="sf-input-select" title="">
<option class="sf-level-0 sf-item-0" data-sf-count="0" data-sf-depth="0" value="">All Locations</option>
<option class="sf-level-0 sf-item-177" data-sf-count="2" data-sf-depth="0" value="all"  <?php if($defaultLocation == "Location A") {echo 'selected';} ?> >Location A</option>
<option class="sf-level-0 sf-item-139" data-sf-count="24" data-sf-depth="0" value="vic" <?php if($defaultLocation == "Location B") {echo 'selected';} ?> >Location B</option>

© www.soinside.com 2019 - 2024. All rights reserved.