如何传递值从父asp.net下拉列表到文本框在弹出使用javascript

本文关键字:javascript 文本 何传递 asp 下拉列表 net | 更新日期: 2023-09-27 18:12:17

您好,我无法将父aspx表单中的下拉列表中的值传递到子aspx表单中的文本框

父javascript第一个脚本是打开弹出窗口

    <script type="text/javascript">
     var popup;
       function NewCustOpn() {
      popup = window.open("NewCustomer.aspx","Popup",toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=520,height=350,left = 250,top = 50");
 }
   </script>

这是父页面上第二个获取下拉列表

值的脚本
    <script type = "text/javascript">
    function parentFunc()
    {
        return document.getElementById ("<%=DropDownList1.ClientID%>").value;
    }
  </script>

子页面javascript:

      <script type = "text/javascript">
    window.onload = function ()
    {
        if(window.opener != null && !window.opener.closed)  
        {
           var val = window.opener.parentFunc();
      var textbox = document.getElementById("<%=TextBox1.ClientID%>");
           textbox.Value = val; 
        }
    }
    </script>

当弹出窗口打开时,TextBox1为空

如何传递值从父asp.net下拉列表到文本框在弹出使用javascript

你的问题很简单。只需从子页面的js函数

中替换下面的行
textbox.Value = val;

textbox.value = val; // lowercase "v"

或者像这样直接赋值

document.getElementById("<%=TextBox1.ClientID%>").value = val;

或者另一个可能的解决方案是直接从parent page传递所需的值作为querystring值,您不需要在弹出页面中的js函数。您可以在子页面的页面加载事件中访问它的querystring值,并将其直接分配给文本框。

   function NewCustOpn() {
        var ddlvalue = document.getElementById("<%=DropDownList1.ClientID%>").value;
        var popup = window.open("Popup.aspx?dropdownval=" + ddlvalue, "Popup", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=520,height=350,left = 250,top = 50");
    }

从你的子页面的代码

 protected void Page_Load(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(Request.QueryString["dropdownval"])) {
         TextBox1.Text = Request.QueryString["dropdownval"];
     }
 }