Chiranthaka Sampath Ответов: 2

Проходя мимо 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

2 Ответов

Рейтинг:
0

Sarita Mall

попробовать это:

С фоновым кодом:


protected void btnOK_Click(object sender, EventArgs e)
     {
         string fisrtname = "FirstName";
         string lastname = "LastName";
         Page.ClientScript.RegisterStartupScript(this.GetType(), "key", "showAlert('" + fisrtname + "','" + lastname + "');", true);

     }


Скрипт:

<script type="text/javascript">
       function showAlert(mydata1, mydata2) {
           var vUserName = document.getElementById("txtUserName").value = mydata1;
           var vPassword = document.getElementById("txtPassword").value = mydata2;

           var vFullInfo = vUserName + vPassword;

           alert(vFullInfo);
       }
   </script>


Пожалуйста, проголосуйте, если решение работает для вас.


Рейтинг:
0

Karthik_Mahalingam

пробовать

ScriptManager.RegisterStartupScript(this, GetType(), "MyKey", "myFunction();", true);

или
ClientScript.RegisterStartupScript(this.GetType(), "MyKey", "myFunction();", true);

обе работы.