Проходя мимо ASP.NET значение текстового поля для функции javascript
Всем привет,
Я создал Ан ASP.Net форма, которая имеет 2 метки, 2 текстовых поля и 2 кнопки.
Я хочу передать вам эти значения ASP.Net текстовые поля для функции JavaScript и триггера находятся в коде позади.
Я успешно запустил функцию JavaScript из кода, лежащего в основе, используя приведенный ниже оператор.
protected void btnOK_Click(object sender, EventArgs e) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "MyKey", "myFunction();", true); }
Но когда я попытался передать значения, это не дало мне выхода.
<script type ="text/javascript" > function myFunction() { var vUserName = document.getElementById("txtUserName").value; var vPassword = document.getElementById("txtPassword").value; var vFullInfo = vUserName + vPassword; alert(vFullInfo); } </script>
Что я уже пробовал:
Ниже приведен полный исходный код для полного решения.
Form01
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="frmStudInfo.aspx.cs" Inherits="WebApplication01.frmStudInfo" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>First ASP.Net Application</title> <script type ="text/javascript" > function myFunction() { var vUserName = document.getElementById("txtUserName").value; var vPassword = document.getElementById("txtPassword").value; var vFullInfo = vUserName + vPassword; alert(vFullInfo); } </script> </head> <body> <form id="form1" runat="server" method="post"> <asp:Label ID="Label1" runat="server" Text="User Name"></asp:Label> <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> <br /> <asp:Label ID="Label2" runat="server" Text="Password"></asp:Label> <asp:TextBox ID="txtPassword" runat="server"></asp:TextBox> <br /> <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> <asp:Button ID="btnOK" runat="server" OnClick="btnOK_Click" Text="OK" /> </form> </body> </html>
Код Форма 01
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication01 { public partial class frmStudInfo : System.Web.UI.Page { private string strUserName; private string strPassword; protected void Page_Load(object sender, EventArgs e) { } protected void btnOK_Click(object sender, EventArgs e) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "MyKey", "myFunction();", true); } } }
Я проверил код и обнаружил, что функция JavaScript, то есть MyFunction (), не захватывает значения из формы. Так что проблема заключается в передаче значений из формы в функцию JS.
Не мог бы кто-нибудь объяснить, что могло пойти не так?
Спасибо,
Чирантхака
A_Griffin
В какой момент Вы хотите передать эти значения в свою функцию JS? Забудьте о ScriptManager - я еще не нашел ему применения. Если вы хотите, чтобы он был нажат при нажатии кнопки btnOK, просто добавьте
btnOK.Атрибуты.Добавить("onclick", "return myFunction()");
в page_load в вашем коде позади и сделайте так, чтобы ваша функция возвращала true или false в зависимости от того, хотите ли вы нажать кнопку для post back или нет. (Вы не должны урождать OnClick="btnOK_Click" в своей разметке.)
Chiranthaka Sampath
Как только я выполню ASP.Net сформируйте форму, я введу значения в текстовые поля и после этого нажму на кнопку "ОК". В этот момент я хочу передать значения в текстовых полях функции JavaScript. Запуск функции JavaScript() из кода позади был достигнут с помощью ScriptManager. Но все равно предупреждение показывает значения как null.
JavScript() находится в теге head