2011-11-10 43 views
3

一个asp.net文本框控件中的网页表单我有一些输入字段文本添加到与jQuery

<div id="search1"> 
     <div class="forminput"> 
      Label 1<br /> 
      <input type="text" name="Field1" value="" size="20" /> 
     </div> 
     <div class="forminput"> 
      Label 2<br /> 
      <input type="text" name="Field2" value="" size="20" /> 
     </div> 
</div> 

由于重点是在失去控制输入的数值需要返回到一个asp.net文本框控件。我已经能够将值传递给使用下面的代码一个div层或标准的HTML元素:

function fieldUpdate() { 

      var currentValue = $(this).val(); 
      var field = $(this).attr("name"); 

       if (currentValue != "") { 
        $("#results").append(field + ":" + currentValue + "+"); 
       } 
     } 
$(function() { 
      $("#search1 :input[type=text]").focusout(fieldUpdate); 

     }); 

然而,这似乎并没有与一个asp.net服务器端控制工作。 更新 这个问题的目的是为了提供值输入到标准的HTML输入字段到一个asp:TextBox控件

<asp:TextBox ID="results2" Text="" Width="400" runat="server" /> 

更新 以下是目前的解决方案是如何工作的屏幕截图。在顶部,当用户输入一个值并在每个字段中跳出时,会将这个值添加到标记为结果的Div层中。我想要做的不是将字段名和值添加到我希望它们添加到asp:textbox控件的DIV元素。

enter image description here

优选的是具有存储在外部JS文件内VS aspx页面内此代码。

任何人都可以提供任何建议,如何做到这一点?

在此先感谢

Update解决方案 感谢詹姆斯对我的帮助,虽然这方面的工作。以下是当前实现中使用的jQuery代码。

function fieldUpdate() { 

      var currentValue = $(this).val(); 
      var field = $(this).attr("name"); 
      var txt = $("#<%=results2.ClientID%>"); 
       if (currentValue != "") { 
        $("#results").append(field + ":" + currentValue + "+"); 
        if (txt) { 
         txt.val(txt.val() + field + ":" + $(this).val() + "+"); 
        } 
       } 
     } 


     $(function() { 
     //only evaluate input text field 
      $("#search1 :input[type=text]").focusout(fieldUpdate); 

这将允许一个asp:文本框填充输入字段名称和值。 示例Field1:foo + Field2:somevalue2 + Field3:somevalue3 ...

+0

您可以添加服务器端控件创建的HTML吗? – ManseUK

+0

究竟是什么问题:将值从输入字段中取出,或将值设置为ASP.NET Textbox控件?如果它是最后一个,Textbox控件在哪里? – Pbirkoff

+0

@Pbirkoff我遇到的问题是我需要能够将html输入字段中的值提供给asp:textbox控件。我已更新问题的清晰度 – rlcrews

回答

11

这些不是ASP.NET TextBox控件;他们是HTML文本输入。虽然要回答你的问题,你可以这样做:

<script type="text/javascript"> 
    $(function(){ 
     $("#input1").val("Hello world"); 
    }); 
</script> 
<input type="text" id="input1" /> 

我注意到,你在你的例子设置名称,而不是ID的。如果您使用的实际ASP

$("input[name='Field1']").val("Hello world"); 

:我会用ID,如果你有一个选择,但你可以找到名称的元素是这样的。NET TextBox控件,该解决方案将是一个有点不同:

<script type="text/javascript"> 
    $(function(){ 
     $("#<%=TextBox1.ClientID%>").val("Hello world"); 
    }); 
</script> 
<asp:TextBox ID="TextBox1" runat="server" /> 

如果你想获得的所有的在search1 DIV的文本输入框,你可以这样做:

$(".forminput input[type='text']").val("Hello world!"); 

下面是一个的jsfiddle上面的例子:在这里http://jsfiddle.net/DWYTR/

编辑

根据您的评论,是如何将一个值从一个输入复制到另一个输入上blur

$(".forminput input[type='text']").blur(function(){ 
    var txt = $("#<%=TextBox1.ClientID%>"); 
    if (txt){ 
     txt.val(txt.val() + $(this).val()); 
    } 
}); 
+0

是的,你是正确的詹姆斯。控件是标准的html输入控件,它们需要配置一个asp.net控件,所以你是正确的我将从输入到asp:textbox。对不起,我在 – rlcrews

+0

这个问题上没有更清楚的说明,因为我也想将字段名称附加到值中。您建议使用ID的名称是任何理由或个人偏好。谢谢 – rlcrews

+0

这取决于你,但ID在大多数情况下是常态。 –