我目前正在尝试使用我的list.gsp
中的脚本更新下拉菜单的值。我正在从JSON中的控制器中检索start_time
和end_time
值,并尝试使用这些新值更新当前的静态下拉列表。
这是我现在要更新选项值的调用,但它不起作用:
$("#mondayStartTime").html(data.days[0].start_time);
这是我想要更新的静态下拉菜单,从特定值start_time一直到开始和结束时间下拉的end_time。
<tr>
<td style="text-align: center; width: 115px;">
<select>
<option id="mondayStartTime>--Start--</option>
例如data.days[0].start_time
将返回09:00:00
而data.days[0].end_time
将返回17:00:00
,我想填充下拉列表,包括开始和结束时间为9:00-5 :00。是否有正确的方法来更新选项值,如我的方式或更好的实现方法?
答案 0 :(得分:1)
在您的select
元素中添加一个ID并按初始值获取您的选项,然后您可以更改text
和value
。
<select name="test" id="test">
<option value="mondayStartTime">--Start--</option>
</select>
<input type='button' id='changeText' value='Change me!' />
$(function(){
$('#changeText').click(function(){
$('#test option[value=mondayStartTime]').text("09:00-17:00");
$('#test option[value=mondayStartTime]').val("09:00,17:00");
});
});
答案 1 :(得分:0)
您可以将时间转换为12小时格式 fiddle
function tConvert (time) {
// Check correct time format and split into components
time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
if (time.length > 1) { // If time format correct
time = time.slice (1); // Remove full string match value
time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM
time[0] = +time[0] % 12 || 12; // Adjust hours
}
return time.join (''); // return adjusted time or original string
}
$("#mondayStartTime").html(tConvert (data.days[0].start_time));
编辑:
使用此选项以12小时格式获取整个范围
function tConvert (time) {
// Check correct time format and split into components
time = time.toString ().match (/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];
if (time.length > 1) { // If time format correct
time = time.slice (1); // Remove full string match value
time[3] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM
time[0] = +time[0] % 12 || 12; // Adjust hours
}
return time.join (''); // return adjusted time or original string
}
alert(buid('09:00:00','18:00:00'));
function buid(start,end)
{
var strt = start.split(':')[0];
var endd = end.split(':')[0];
var rangeArray = new Array();
for(i=strt;i<=endd;i++)
{
rangeArray.push(i+':00:00');
}
var timeArray = new Array();
for(j in rangeArray)
{
timeArray.push(tConvert(rangeArray[j]));
}
console.log(timeArray);
return timeArray;
}