【问题标题】:Value not saving in textbox when changed by javascript由javascript更改时值未保存在文本框中
【发布时间】:2014-01-24 16:31:54
【问题描述】:

我有一个javascript函数如下:

        Dim s As New StringBuilder
    s.Append("<script type=""text/javaScript"">")

    s.Append("var result = new Object();" & ControlChars.CrLf)
    s.Append("if (window.returnValue == 'undefined') { window.returnValue = ''; }" & ControlChars.CrLf)
    s.Append("function ReturnClaimCode(id) { " & ControlChars.CrLf)
    s.Append("document.getElementById('" & txtClaimSelected.UniqueID & "').value=id;" & ControlChars.CrLf)
    s.Append("document.getElementById('" & btnAllocate.UniqueID & "').disabled = false;" & ControlChars.CrLf)
    s.Append("}" & ControlChars.CrLf)
    s.Append("</script>")

    If Not ClientScript.IsClientScriptBlockRegistered("ReturnClaimCodeJs") Then
        ClientScript.RegisterClientScriptBlock(Me.GetType(), "ReturnClaimCodeJs", s.ToString())
    End If

这在执行时将文本框“txtClaimSelected”的值设置为 ID,可以是“1”、“2”、“3”等。这可以正常工作。我的问题是当我点击表单上的一个按钮时(通过这个javascript将ID值放入文本框之后),通过

获得的值
Dim valueoftextbox = txtClaimSelected.Text

不是我在文本框中看到的值。它是运行 javascript 之前的默认值(即单词“None”)。如何“存储”这个值或让我的代码看到文本框的更新内容?

我尝试通过 javascript 强制回发

 s.Append("__doPostBack('','');" & ControlChars.CrLf)

这确实会导致回发,但值总是会再次丢失。

请帮忙。 谢谢

【问题讨论】:

  • 看起来像一个 ViewState 问题。 Web 窗体为每个输入创建一个隐藏字段以保存视图状态。也许您是从隐藏输入而不是文本框中获取值。尝试在文本框中添加 EnableViewState="false" 并再次测试!

标签: javascript asp.net vb.net postback


【解决方案1】:

我很抱歉。引用的文本框设置为只读。当我更改此设置时,新值存储正常。

【讨论】:

    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多