因为业务需求,传输中心要求配置工作时间段,在网上找了半天终于找着了。
<script>
var str = "";
document.writeln("<div id=\"_contents\" style=\"padding:6px; background-color:#E3E3E3; font-size: 12px; border: 1px solid #777777; position:absolute; left:?px; top:?px; width:?px; height:?px; z-index:1; visibility:hidden\">");
str += "\u65f6<select name=\"_hour\">";
for (h = 0; h <= 9; h++) {
str += "<option value=\"0" + h + "\">0" + h + "</option>";
}
for (h = 10; h <= 23; h++) {
str += "<option value=\"" + h + "\">" + h + "</option>";
}
str += "</select> \u5206<select name=\"_minute\">";
for (m = 0; m <= 9; m++) {
str += "<option value=\"0" + m + "\">0" + m + "</option>";
}
for (m = 10; m <= 59; m++) {
str += "<option value=\"" + m + "\">" + m + "</option>";
}
str += "</select> \u79d2<select name=\"_second\">";
for (s = 0; s <= 9; s++) {
str += "<option value=\"0" + s + "\">0" + s + "</option>";
}
for (s = 10; s <= 59; s++) {
str += "<option value=\"" + s + "\">" + s + "</option>";
}
str += "</select> <input name=\"queding\" type=\"button\" onclick=\"_select()\" value=\"\u786e\u5b9a\" style=\"font-size:12px\" /></div>";
document.writeln(str);
var _fieldname;
function _SetTime(tt) {
_fieldname = tt;
var ttop = tt.offsetTop; //TT控件的定位点高
var thei = tt.clientHeight; //TT控件本身的高
var tleft = tt.offsetLeft; //TT控件的定位点宽
while (tt = tt.offsetParent) {
ttop += tt.offsetTop;
tleft += tt.offsetLeft;
}
document.all._contents.style.top = ttop + thei + 4;
document.all._contents.style.left = tleft;
document.all._contents.style.visibility = "visible";
}
function _select() {
_fieldname.value = document.all._hour.value + ":" + document.all._minute.value + ":" + document.all._second.value;
document.all._contents.style.visibility = "hidden";
}
</script>
<body>
<input name="star" id="star" type="text" readonly onclick="_SetTime(this)"/>
</body>
最终运行效果:
如果想加给两个时间段加上校验 的话 比如判断开始时间不能大于结束时间请看:
function add(){
var star = document.getElementById("star").value;
var end = document.getElementById("end").value;
if(star =='' || end ==''){
alert("请在输入框中单击鼠标选择时间");
return false;
}
var s_arr = star.split(":");
var e_arr = end.split(":");
if(star == end){
alert("时间段不能完全相等");
return false;
}
if(parseInt(s_arr[0]) > parseInt(e_arr[0])){
alert("开始时间不能大于结束时间");
return false;
}
if(parseInt(s_arr[1]) > parseInt(e_arr[1])){
alert("开始时间不能大于结束时间");
return false;
}
if(parseInt(s_arr[2]) > parseInt(e_arr[2])){
alert("开始时间不能大于结束时间");
return false;
}
document.form1.action = "/servlet/specUserConfig?operFlag=6";
document.form1.submit();
}