2012-12-11 6 views
2

을 다음과 같은 마크 업과 같이 생성 할 수있는 방법이 있나요 :시간을 생성 : 분 선택 목록

<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 분마다 반복?

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

Ruby에서 서버 측 (필요한 경우)이 필요하거나 JavaScript에서 클라이언트 측이 괜찮습니까? –

+0

- 제공된 js 응답이 좋게 보입니다. 한 줄짜리 레일 도우미가 있다면 사용할 수 있습니까? – Alex

답변

3

당신은 그것을 생성하는 간단한에 대한 루프를 사용할 수 있습니다 (매 30 분마다 내 경우) 나는 레일 (3)을 사용하고, 이것이 작동하는 동안,이 분을 포함하지 않는다 자바 스크립트 (또는 PHP/Ruby를 원한다면 기본 구조는 동일합니다).

등 : http://jsfiddle.net/MrXenotype/chafg/

ZEROFILL 기능이 여기서 수행된다 : 그것은 숫자 0 선두 추가합니다 How can I pad a value with leading zeros?

여기

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 
} 

는 일례이다.

관련 문제