簡體   English   中英

單擊按鈕后返回ASP.NET JavaScript

[英]ASP.NET JavaScript return after button click

aspx中的代碼:

<asp:HiddenField ID="hf0" Value="No Value" runat="server"/>
<asp:TextBox ID="TextBox0" runat="server"></asp:TextBox>
<asp:Label ID="Label0" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Validate" runat="server" Text="Validate" OnClick="Validate_Click"/>

C#中的代碼:

protected void Validate_Click(object sender, EventArgs e)
{
        // Set JavaScript
        string myFn = "function Textbox0_validate(str) {"
            + "if (str.length < 5) { return 'Invalid, at least 5 chars!';} return 'Passed';}"
            + "function validateAll() {document.getElementById('hf0').value =Textbox0_validate('"+ TextBox0.Text +"');}";
        Page.Header.Controls.Add(new LiteralControl("<script type='text/javascript'>" + myFn + "</script>"));
        // Start JavaScript
        Page.ClientScript.RegisterStartupScript(GetType(), "validateAll", "validateAll();", true);
        // Read results
        Label0.Text = hf0.Value;
}

目的是功能“ Textbox0_validate”,因為它可以驗證“ Textbox0”中的文本。 因此,當我單擊按鈕時,“ Label0”應顯示驗證的結果。(通過或無效。。。)而且我想保持動態,這就是為什么我從后面的代碼中添加這些JavaScript。 (而且,我不想使用RegEx)

代碼的問題是,當我單擊按鈕“驗證”時,它不會更新“ hf0”的值。 然而; 如果我第二次單擊它,則將顯示第一次的結果。 因此,基本上,我需要單擊按鈕兩次以獲得所需的驗證結果。 我想PostBack存在一些問題,請幫忙。

好吧,我有點解決我的問題。 我在Page_Load添加了Label0.Text = hf0.Value 然后在JavaScript中,我添加了__doPostBack('',''); 因此,JavaScript完成后,它將回發,並且該值將在Page_Load得到更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM