使用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;