Javascript return gridview 中包含的文本框中的正确时间格式
Javascript return correct time format in textbox contained in gridview
我正在尝试让在文本框中输入的时间自动更正,如果它发现自己缺少 : 字符。
所以当用户退出文本框时 0100 变为 01:00
它也包含在网格视图中。
这是我尝试过的方法,但我没有得到任何结果。
function four_digit_clock()
{
var grdvw = document.getElementById('<%= grd_issue_am.ClientID %>');
for (var rowId = 1; rowId < grdvw.rows.length; rowId++) {
var txtbx = grdvw.rows[rowId].cells[0].children[0];
if (txtbx != "" || txtbx.length != 0 || txtbx != null) {
if (txtbx.length == 4) {
var clock = txtbx.value;
if (clock.substring(2, 1) != ':') {
txtbx.value = txtbx.value.substring(0, 2) + ':' + txtbx.substring(2, 2);
}
}
}
}
}
**html**
<asp:TextBox runat="server" ID="txt_grd_am_clock_in" onblur ="javascript: four_digit_clock();"/>
我是完全找错树了还是漏掉了什么?
子字符串的工作原理是这样的 substring(startpos,endpos)
。请注意 endpos
与字符串长度不同!示例:a="1234"
使 a.stringpos(1,3)
-> "23"
。
所以你的评论(clock.value.length-2,2)
仍然是错误的。你的意思可能是 substring(clock.value.length-2, clock.value.length)
.
这也意味着你的 clock.substring(2, 1);
是错误的。 (它实际上是可逆的:clock.substring(1, 2);
是一回事!。)你想要的是 clock.substring(2, 3);
。 (假设字符串如“15:30”)。
接下来让事情变得更简单。您可以使用 this
关键字来定位文本框:我可能会这样做:
onblur="this.value=four_digit_clock(this.value);"
和
function four_digit_clock( val ){
if (val.length < 4 || val.substring(2,3) == ":" ) {
return val;
}
return val.substring(0, 2) + ':' + val.substring(2, 4);
}
我还没有在 c# 上下文中尝试过,但是 javascript 有效。 http://jsfiddle.net/mg4gwkmb/
我正在尝试让在文本框中输入的时间自动更正,如果它发现自己缺少 : 字符。 所以当用户退出文本框时 0100 变为 01:00
它也包含在网格视图中。
这是我尝试过的方法,但我没有得到任何结果。
function four_digit_clock()
{
var grdvw = document.getElementById('<%= grd_issue_am.ClientID %>');
for (var rowId = 1; rowId < grdvw.rows.length; rowId++) {
var txtbx = grdvw.rows[rowId].cells[0].children[0];
if (txtbx != "" || txtbx.length != 0 || txtbx != null) {
if (txtbx.length == 4) {
var clock = txtbx.value;
if (clock.substring(2, 1) != ':') {
txtbx.value = txtbx.value.substring(0, 2) + ':' + txtbx.substring(2, 2);
}
}
}
}
}
**html**
<asp:TextBox runat="server" ID="txt_grd_am_clock_in" onblur ="javascript: four_digit_clock();"/>
我是完全找错树了还是漏掉了什么?
子字符串的工作原理是这样的 substring(startpos,endpos)
。请注意 endpos
与字符串长度不同!示例:a="1234"
使 a.stringpos(1,3)
-> "23"
。
所以你的评论(clock.value.length-2,2)
仍然是错误的。你的意思可能是 substring(clock.value.length-2, clock.value.length)
.
这也意味着你的 clock.substring(2, 1);
是错误的。 (它实际上是可逆的:clock.substring(1, 2);
是一回事!。)你想要的是 clock.substring(2, 3);
。 (假设字符串如“15:30”)。
接下来让事情变得更简单。您可以使用 this
关键字来定位文本框:我可能会这样做:
onblur="this.value=four_digit_clock(this.value);"
和
function four_digit_clock( val ){
if (val.length < 4 || val.substring(2,3) == ":" ) {
return val;
}
return val.substring(0, 2) + ':' + val.substring(2, 4);
}
我还没有在 c# 上下文中尝试过,但是 javascript 有效。 http://jsfiddle.net/mg4gwkmb/