-Code in aspx:ASP.NET JavaScript Rückkehr nach Schaltfläche klicken
<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"/>
-Code in 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;
}
Der Zweck ist die Funktion 'Textbox0_validate' ist, kann er den Text in ‚Textbox0 validieren ". Wenn ich also auf den Button klicke, sollte 'Label0' das Ergebnis der Validierung anzeigen (Passed oder Invalid ....) Und ich möchte dynamisch sein, deshalb habe ich diese JavaScript aus dem dahinterstehenden Code hinzugefügt. (Auch ich möchte keine RegEx verwenden)
Das Problem mit dem Code ist, wenn ich auf die Schaltfläche "Validieren" klicken, wird der Wert von "hf0" nicht aktualisiert. Jedoch; Wenn ich das zweite Mal klicke, wird das Ergebnis des ersten Mals angezeigt. Also im Grunde muss ich zweimal auf die Schaltfläche klicken, um das gewünschte Validierungsergebnis zu erhalten. Ich denke, es gibt ein Problem mit PostBack, bitte helfen Sie.
Was ist, wenn Sie 'document.getElementById ('hf0')' durch 'document.getElementById ('" + hf0.ClientID "') ersetzen' –
Danke, aber immer noch nicht funktioniert. Ich denke, das Problem ist sogar ich möchte, dass JavaScript innerhalb von Validate_Click ausgeführt wird, aber es hält es nach Abschluss Validate_Click. Beim Aktualisieren von 'hf0' wurde der Wert daher nicht aktualisiert. – Hellack