我认为在下面的<select>元素上添加一个“value”属性集会导致默认选择包含我提供的“value”的<option>:

<select name=“hall”id=“hall”value=“3”><option>1</option><option>2</option><option>3</option><选项>4</选项><选项>5</选项></选择>

然而,这并没有像我预期的那样奏效。我如何设置默认选择哪个<option>元素?


当前回答

这个例子已经过测试,可以使用页面上的多个<select>元素,也可以使用普通的文本元素。当<select multiple=“true”>时,它还没有测试过将值设置为多个选择,但是您可能可以修改此示例以支持这一点。

将所选属性数据添加到每个<select>元素,并将值设置为要选择的选项的值。使用javascript的querySelectorAll()选择具有刚刚添加的自定义属性的所有元素。

在下面的示例中,当运行时,第一个<select>应显示值user为选中的选项,第二个<select<应显示值admin为选中的选择。

document.querySelectorAll('[data selected]').forEach(e=>{e.value=选定的e.dataset});<select data selected=“user”class=“form control”name=“role”><option value=“public”>普布利卡</选项><option value=“user”>乌坦蒂语</选项><option value=“admin”>管理</选项></选择><select data selected=“admin”class=“form control”name=“role2”><option value=“public”>普布利卡</选项><option value=“user”>乌坦蒂语</选项><option value=“admin”>管理</选项></选择>

其他回答

每个选项中都需要一个“id”属性,此解决方案才能正常工作:

<脚本>函数select_option(id,value_selected){var选择;select=document.getElementById(id);如果(select==null)返回0;var选项;option=select.options.namedItem(value_selected);if(option==null)返回0;option.selected=“已选择”;返回true;} </script><select name=“hall”id=“hall”><option id=“1”>1</option><option id=“2”>2</option><option id=“3”>3</option><option id=“4”>4</option><option id=“5”>5</option></选择><script>select_option(“大厅”,“3”)</脚本>

函数首先尝试查找id为的<select>,然后在<select>选项中搜索value_selected,如果找到它,则将所选属性设置为true。否则为False

我就是这样做的。。。

<form action="../<SamePage>/" method="post">

<?php
    if ( $_POST['drop_down'] == "")
    {
    $selected = "";
    }
    else
    {
    $selected = "selected";
    }
?>

<select name="select" size="1">

  <option value="1" <?php $selected ?>>One</option>
     ////////  OR  ////////
  <option value="2" $selected>Two</option>

</select>
</form>

你可以这样做:

<select name="hall" id="hall">
    <option> 1 </option>
    <option> 2 </option>
    <option selected> 3 </option>
    <option> 4 </option>
    <option> 5 </option>
</select> 

在选项标记中提供“selected”关键字,默认情况下,该关键字将显示在下拉列表中。

或者您也可以为选项标签提供属性,即。

<option selected="selected">3</option>

如果您希望将默认文本作为占位符/提示,但不认为它是有效值(例如“此处完成”、“选择您的国家”ecc),您可以执行以下操作:

<选择><option value=“”selected disabled hidden>选择此处</option><option value=“1”>一个</option><option value=“2”>两个</option><option value=“3”>三个</option><option value=“4”>四个</option><option value=“5”>五个</option></选择>

我使用这个php函数生成选项,并将其插入到HTML中

<?php
  # code to output a set of options for a numeric drop down list
  # parameters: (start, end, step, format, default)
  function numericoptions($start, $end, $step, $formatstring, $default)
  {
    $retstring = "";
    for($i = $start; $i <= $end; $i = $i + $step)
    {
      $retstring = $retstring . '<OPTION ';
      $retstring = $retstring . 'value="' . sprintf($formatstring,$i) . '"';
      if($default == $i)
      {
        $retstring = $retstring . ' selected="selected"';
      }
      $retstring = $retstring . '>' . sprintf($formatstring,$i) . '</OPTION> ';
    }

  return $retstring;
  }

?>

然后在我的网页代码中,我使用它如下:;

<select id="endmin" name="endmin">
  <?php echo numericoptions(0,55,5,'%02d',$endmin); ?>
</select>

如果每次加载页面时都从_POST变量创建$endmin(并且此代码位于发布的表单中),则默认情况下会选择先前选择的值。