我一直在尝试修改sharepoint中的日期下拉菜单,因为默认情况下,分钟下拉菜单只允许您选择5分钟的时间间隔。我最初使用以下代码完成了它的工作:
$("select[id$='DateTimeFieldDateMinutes']").empty();
var newOptions = {00: "00",
01: "01",
02: "02",
03: "03",
04: "04",
05: "05",
06: "06",
07: "07",
08: "08",
09: "09",
10: "10",
11: "11",
12: "12",
13: "13",
14: "14",
15: "15",
16: "16",
17: "17",
18: "18",
19: "19",
20: "20",
21: "21",
22: "22",
23: "23",
24: "24",
25: "25",
26: "26",
27: "27",
28: "28",
29: "29",
30: "30",
31: "31",
32: "32",
33: "33",
34: "34",
35: "35",
36: "36",
37: "37",
38: "38",
39: "39",
40: "40",
41: "41",
42: "42",
43: "43",
44: "44",
45: "45",
46: "46",
47: "47",
48: "48",
49: "49",
50: "50",
51: "51",
52: "52",
53: "53",
54: "54",
55: "55",
56: "56",
57: "57",
58: "58",
59: "59"
};
var $el = $("select[id$='DateTimeFieldDateMinutes']");
$el.empty(); // remove old options
$.each(newOptions, function(value,key) {
$el.append($("<option></option>")
.attr("value", value).text(key));
});
我尝试通过执行以下操作来清理并优化它:
$("select[id$='DateTimeFieldDateMinutes']").empty();
$(function(){
var $select = $("select[id$='DateTimeFieldDateMinutes']");
for (i=0+0;i<=59;i++){
$select.append($('<option></option>').val(i).html(i))
}
});
然而,当我这样做时,我失去了html值中的前导零。无论如何要做到这一点还是我坚持用我的笨蛋方法?
答案 0 :(得分:0)
只需添加一个检查是否小于10即可添加前导零。
$("select[id$='DateTimeFieldDateMinutes']").empty();
$(function(){
var $select = $("select[id$='DateTimeFieldDateMinutes']");
for (i=0+0;i<=59;i++){
var min = i < 10 ? '0'+i : i;
$select.append($('<option></option>').val(i).html(min))
}
});
答案 1 :(得分:0)
只需转换为字符串,如果i <10
,则添加0$(function(){
var $select = $("select[id$='DateTimeFieldDateMinutes']");
for (var i=0; i<=59; i++){
var strnum = (i<10?"0":"") + i;
$select.append($('<option/>').val(strnum).html(strnum))
}
});
答案 2 :(得分:0)
您可以使用自定义打击垫功能:
var pad = function (n) {return n<10? '0'+n:''+n;}
for (i=0+0;i<=59;i++){
$select.append($('<option></option>').val(i).html(pad(i)))
}
答案 3 :(得分:0)
0+0
实际上是一个字符串。如果你递增它,JavaScript会尝试将其解析为数字或返回NaN
。
而不是这样做,改为:
for (i=0;i<=59;i++){
var padded = i < 10 ? "0" + i : "" + i;
$select.append($('<option></option>').val(padded).html(padded));
}