使用javascript在HTMLInput的字符串上添加字符
我把这个使用javascript在HTMLInput的字符串上添加字符,javascript,asp.net,Javascript,Asp.net,我把这个htmlInput放在ASP:Repeater中,我想在它的按键上设置时间格式(例如:13:39)。到目前为止,我在中继器数据绑定中有以下代码: Protected Sub rpt_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpt.ItemDataBound If e.Item.ItemType = Li
htmlInput
放在ASP:Repeater
中,我想在它的按键上设置时间格式(例如:13:39
)。到目前为止,我在中继器数据绑定中有以下代码:
Protected Sub rpt_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rpt.ItemDataBound
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim txt As HtmlInputText = DirectCast(e.Item.FindControl("txtKmRun"), HtmlInputText)
If txt IsNot Nothing Then
txt.Attributes.Add("onkeypress", "return kmRun('" & txt.Value & "');")
End If
End If
End Sub
…这在JavaScript中:
<script>
function kmRun(myValue) {
String x = myValue;
x = x.substring(0, 2) + ":" + x.substring(2, x.length());
alert(x); //alert to test display but is not working
//HOW TO PASS x VALUE TO BACK TO THE TEXTBOX?
}
</script>
您不需要声明另一个变量,可以使用myValue
参数
我建议使用onchange=“kmRun(this)”
来代替onkeypress=“kmRun(this)”
,因为您需要更改内容,以便最终由代码格式化
通过使用此
,您可以获得textBox控件的所有属性
您可以在javascript代码中尝试以下操作:
功能运行(控制){
control.value=control.value.substring(0,2)+:“+control.value.substring(2,control.value.length);
}
您的逻辑有一些问题
- 您正在
ItemDataBound
中发送txt.Value
,但在HTML
中呈现时,它将是一个固定值,因为用户键入时它不会更新。您必须更改以下内容:
txt.Attributes.Add("onkeypress", "return kmRun(this.value);")
上面的关键字此
指的是您的输入
,每当用户键入时,它都会得到更新
- Javascript不是类型化语言,没有
String x=
声明。您必须使用:
var x = myValue;
- 如果未验证字段是否包含两个以上的字符,则不应直接使用
.substring(0,2)
,因为如果字段包含两个以上的字符,浏览器将抛出错误
- 您正在使用
.length
,因为它是一种方法,但它是一种属性。不要使用括号()
最后,要将值传递回文本框
,您可以执行以下操作:
this.value = x;
只需将this.value=x;在javascript函数的末尾?对不起,我对javascript不是很熟悉。@eirishainjel是的,就是这样。谢谢您的输入,先生!:欢迎@eirishainjel。如果您需要更多帮助,您可以在需要时询问。:)
this.value = x;