我在ASP:Repeater
的中有此htmlInput
,我希望在其keypress
上以時間格式(例如:13:39
)對其進行格式化。到目前爲止,我有這樣的代碼在轉發數據綁定:使用javascript在HTMLInput中爲字符串添加字符
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>
測試onkeypress
屬性用一個簡單的javascript警報消息和它的工作,但是當與修改價值傳遞,沒有回報價值。所以我猜,錯誤從那裏開始。
其他問題是當javascript部分工作時,如何將「已轉換」字符串值返回到htmlInput
?有沒有其他解決方案可以解決這個問題,不會使用PostBack
?
謝謝。
===================
這是工作代碼:
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(this);")
End If
End If
End Sub
<script>
function kmRun(x) {
if (x.value.length > 2) {
x.value = x.value.substring(0, 2) + ":" + x.value.substring(2, x.value.length);
}
}
</script>
謝謝你,先生!現在正在工作。 – eirishainjel
不客氣@eirishainjel。如果您需要更多幫助,您可以隨時問。 :) –
是的。再次感謝! – eirishainjel