通过javascript更改时,值不保存在文本框中

时间:2014-01-24 16:31:55

标签: javascript asp.net vb.net postback

我有一个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,该ID可以是'1','2','3'等。这样可以正常工作。我的问题是,当我单击表单上的一个按钮时(通过此javascript将ID值放入文本框后),通过

获取的值
Dim valueoftextbox = txtClaimSelected.Text

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

我尝试通过

在javascript中强制回发
 s.Append("__doPostBack('','');" & ControlChars.CrLf)

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

请帮忙。 感谢

1 个答案:

答案 0 :(得分:1)

道歉。引用的文本框设置为只读。当我更改此设置时,新值已存储好。