选择的HTML选择选项不起作用

时间:2017-03-02 17:10:07

标签: php html html5 html-select

我想默认设置当前日期,但它仅适用于年份的选择(最后一个)。

我不想在这种情况下使用javascript。只需 html php

我已经尝试过“selected ='selected'”和“autocomplete = off”,如其他帖子所示。

这是我的代码

<form id="form-orders-date" onsubmit="selectOrdersDate();">
                    <select id="orders-day">
                        <?php 
                        for ($i=1; $i <= 31; $i++) {
                            if (sprintf('%02d', $i) == date("d")) {
                                echo "<option value=\"".sprintf('%02d', $i)."\" selected>".sprintf('%02d', $i)."</option>";
                            }
                            else{
                                echo "<option value=\"".sprintf('%02d', $i)."\">".sprintf('%02d', $i)."</option>" ;
                            }
                        } 
                        ?>
                    </select>
                    <select id="orders-month">
                        <?php 
                        for ($i=1; $i <= 12; $i++) {
                            if (sprintf('%02d', $i) == date("m")) {
                                echo "<option value=\"".sprintf('%02d', $i)."\" selected>".sprintf('%02d', $i)."</option>";
                            }
                            else{
                                echo "<option value=\"".sprintf('%02d', $i)."\">".sprintf('%02d', $i)."</option>" ;
                            }
                        } 
                        ?>
                    </select>
                    <select id="orders-year">
                        <?php 
                        for ($i=2012; $i <= 2020; $i++) {
                            if (sprintf('%02d', $i) == date("Y")) {
                                echo "<option value=\"".sprintf('%02d', $i)."\" selected>".sprintf('%02d', $i)."</option>";
                            }
                            else{
                                echo "<option value=\"".sprintf('%02d', $i)."\">".sprintf('%02d', $i)."</option>" ;
                            }
                        } 
                        ?>
                    </select>
                    <input type="submit" value="OK" />
</form>

这里是PHP运行时的纯HTML:

<form id="form-orders-date" onsubmit="selectOrdersDate();">
    <select id="orders-day">
        <option value="01">01</option>
        <option value="02" selected>02</option>
        <option value="03">03</option>
        <option value="04">04</option>
        <option value="05">05</option>
        <option value="06">06</option>
        <option value="07">07</option>
        <option value="08">08</option>
        <option value="09">09</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>
    <select id="orders-month">
        <option value="01">01</option>
        <option value="02">02</option>
        <option value="03" selected>03</option>
        <option value="04">04</option>
        <option value="05">05</option>
        <option value="06">06</option>
        <option value="07">07</option>
        <option value="08">08</option>
        <option value="09">09</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
    </select>
    <select id="orders-year">
        <option value="2012">2012</option>
        <option value="2013">2013</option>
        <option value="2014">2014</option>
        <option value="2015">2015</option>
        <option value="2016">2016</option>
        <option value="2017" selected>2017</option>
        <option value="2018">2018</option>
        <option value="2019">2019</option>
        <option value="2020">2020</option>
    </select>
    <input type="submit" value="OK" />
</form>

5 个答案:

答案 0 :(得分:0)

这是您要查找的代码 当包含双引号时,请记住使用单引号(&#39;),如果使用双引号,则使用\#34;在外部双引号内。

<form id="form-orders-date" onsubmit="selectOrdersDate();">
                    <select id="orders-day">
                         <?php
                        for ($i=1; $i <= 31; $i++) {
                            if ($i == date("d")) {
                                echo '<option value="'.$i.'" selected>'.$i.'</option>';
                            }
                            else{
                                echo '<option value="'.$i.'">'.$i.'</option>';
                            }
                        } 
                        ?>
                    </select>
                    <select id="orders-month">
                         <?php
                        for ($i=1; $i <= 12; $i++) {
                            if ($i == date("m")) {
                                echo '<option value="'.$i.'" selected>'.$i.'</option>';
                            }
                            else{
                                echo '<option value="'.$i.'">'.$i.'</option>';
                            }
                        } 
                        ?>                        
                    </select>
                    <select id="orders-year">
                         <?php
                        for ($i=2012; $i <= 2020; $i++) {
                            if ($i == date("Y")) {
                                echo '<option value="'.$i.'" selected>'.$i.'</option>';
                            }
                            else{
                                echo '<option value="'.$i.'">'.$i.'</option>';
                            }
                        } 
                        ?>
                    </select>

答案 1 :(得分:0)

你能尝试这样吗。

<form id="form-orders-date" onsubmit="selectOrdersDate();">
<select id="orders-day">
<?php 
    for ($i=1; $i <= 31; $i++) {
       if ($i == date("d")) {
            echo "<option value='$i' selected='selected'>$i</option>";
       } else {
           echo "<option value='$i'>$i</option>";
       }
    } 
?>                  
</select>
<select id="orders-month">
   for ($i=1; $i <= 12; $i++) {
      if ($i == date("m")) {
         echo "<option value='$i' selected='selected'>$i</option>";
      } else {
         echo "<option value='$i'>$i</option>";
      }
   }            
</select>
<select id="orders-year">
<?php 
   for ($i=2012; $i <= 2020; $i++) {
   if ($i == date("Y")) {
        echo "<option value='$i' selected='selected'>$i</option>";
   } else {
       echo "<option value='$i'>$i</option>";
   }
}              
?>
</select>
&nbsp;&nbsp;<input type="submit" value="OK" />
</form>

答案 2 :(得分:0)

这是实现这一目标的更紧凑方式:

<form id="form-orders-date" onsubmit="selectOrdersDate();">
    <select id="orders-day">
        <?php for ($d = 1; $d <= 31; $d++) { ?>
            <option value="<?php echo $d; ?>" <?php if ($d == date('j')) { echo 'selected'; ?>><?php echo $d; ?></option>
        <?php } ?>
    </select>
    <select id="orders-month">
        <?php for ($m = 1; $m <= 12; $m++) { ?>
            <option value="<?php echo $m; ?>" <?php if ($m == date('n')) { echo 'selected'; ?>><?php echo $m; ?></option>
        <?php } ?>
    </select>
    <select id="orders-year">
        <?php for ($y = 2012; $y <= 2020; $y++) { ?>
            <option value="<?php echo $y; ?>" <?php if ($y == date('Y')) { echo 'selected'; ?>><?php echo $y; ?></option>
        <?php } ?>
    </select>
    &nbsp;&nbsp;
    <input type="submit" value="OK" />
</form>

答案 3 :(得分:0)

我知道你说你已经尝试过了,但你的示例代码并没有显示出来。以下是您的代码应如何形成:

<select>
<option value="01">01</option>
<option value="02" selected="selected">02</option>
<option value="03">03</option>
...
</select>

上面的示例对于所选元素看起来非常不同。我建议您使用Web浏览器中内置的任何检查工具来查看确切呈现的内容,这可能会使解决方案显而易见。

供参考,见:

Definition of select tag

Definition of option tag

答案 4 :(得分:0)

您是否尝试过autocomplete =“ off”进行选择?它对我有用。