2012-03-17 71 views
1

我有一个带有文本框的Asp.Net Webform。我试图显示textbox服务器控制值的值在文本区域嵌入按钮单击一些文本。我不确定它的服务器控件是否在服务器问题或回发问题上运行,文本框的值并未填充到文本区域中。任何帮助将不胜感激。提前致谢。使用Jquery显示Texbox值

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <script src="jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#Button2').click(function() { 
       $('#test').show(); 
       return false; 
      }); 
     }); 

    </script> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button2" runat="server" Text="Go" /> 



     <span id="test" style="display: none"> 
      <textarea id="showTextarea"> 
    This is new <%=TextBox1.Text %> from web form server control. 
    </textarea> 
     </span> 
    </div> 
    </form> 
</body> 
</html> 

回答

2

使用jQuery,

$(function() { 
     $('#Button2').click(function() { 
      $('#showTextarea').val($("#TextBox1").val()); 
      return false; 
     }); 
    }); 

此代码将工作,如果你的文本框有ID TextBox1的和你的文本区域有ID showTextarea和你的按钮有ID Button2的

在ASP.NET webforms中,如果您的控件位于其他ASP.NET控件(如面板等)中,则该ID不会完全像这个。你可能需要检查ViewSource来验证。

1
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#Button2').click(function() { 
      $('#showTextarea').val('This is new' + $('#TextBox1').val() + ' from web form server control'); 
      $('#test').show(); 
      return false; 
     }); 
    }); 

</script> 

<textarea id="showTextarea"> 

</textarea> 
2

这不是回发问题。 jQuery/JavaScript处理点击,当它返回false时,意味着不回发。

客户端

如果你想没有在服务器上做任何事的,那么你应该只检索答案并返回false(或者你可以将事件添加到显示从文本框中的值功能function(e) {然后做一个e.preventDefault();

$("#Button2").click(function() { 
    $("#showTextarea").val("This is new " + $("#TextBox1").val() + " from web form server control"); 
    $("#test").show(); 
    return false; 
    }); 

服务器端

我F你想处理在服务器端的数据,你应该在默认情况下Visible="False"添加一个多行TextBox的ASPX页面,并将其设置:

<asp:TextBox ID="showTextarea" runat="server" TextMode="MultiLine" Visible="False"></asp:TextBox> 

然后在以下代码后面:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    showTextarea.Visible = true; 
    showTextarea.Text = "This is new " + TextBox1.Text + " from web form server control."; 
} 
+0

我想显示如下代码片段与jQuery的代码。有什么建议么? 公共类<%= tbxProjName.Text%> ConnectionClass { 公共的SqlConnection <%= tbxProjName.Text%>连接() { SqlConnection con = new SqlConnection(“Data Source = <%= tbxServerName.Text%>; Initial Catalog = <%= tbxDBName.Text%>; Integrated Security = True”); return con; } } – Kurkula 2012-03-19 02:12:39

+0

如果你不想用jQuery显示它,那么你不能从'<% .. %>'的表单检索值,你必须使用'$(“#idOfElement”).val()'从文本框中获取数据' 。上面看我的答案,你如何将静态文本和动态文本框结合在一起。 如果您认为您的原始问题得到解答,那么您应该“接受”最佳答案。 – MatteKarla 2012-03-22 10:17:13