3

有没有办法生成类似以下标记的内容:

<select> 
    <option value="0000">00:00</option>
    <option value="0030">00:30</option>
    <option value="0100">01:00</option>
    <option value="0130">01:30</option>
    <option value="0200">02:00</option>
    <option value="0230">02:30</option>
    <option value="0300">03:00</option>
    <!--rest of options omitted for brevity-->
</select>

... 一直到 23:30 - 所以每 30 分钟重复一次?

我正在使用 rails 3,虽然这有效,但它不包括分钟(在我的情况下,每半小时)

select_hour(13, :prompt => 'Choose hour')
4

1 回答 1

4

您可以使用简单的 for 循环在 javascript 中生成它(如果您愿意,也可以使用 PHP/Ruby,基本结构是相同的)。

如:

var selection = "";
var i = 0;
for(var i = 0; i < 24; i++)
{
    selection += "<option value='"+ zeroFill(i, 2) +"00'>"+ zeroFill(i, 2) + ":00" + "</option>";
        selection += "<option value='"+ zeroFill(i, 2) +"30'>"+ zeroFill(i, 2) + ":30" + "</option>";
}
$("select").html(selection);

function zeroFill( number, width )
{
  width -= number.toString().length;
  if ( width > 0 )
  {
    return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
  }
  return number + ""; // always return a string
}

这是一个例子:http: //jsfiddle.net/MrXenotype/chafg/

ZeroFill 函数取自这里:如何用前导零填充值?

它将前导 0 添加到数字中。

于 2012-12-11T20:05:58.907 回答