当前位置 : 主页 > 网页制作 > JQuery >

使用jQuery将文本添加到asp.net文本框控件

来源:互联网 收集:自由互联 发布时间:2021-06-15
在Web表单中,我有一些输入字段 div id="search1" div class="forminput" Label 1br / input type="text" name="Field1" value="" size="20" / /div div class="forminput" Label 2br / input type="text" name="Field2" value="" size="20" / /di
在Web表单中,我有一些输入字段

<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元素中.

最好将此代码存储在外部js文件中,而不是存储在aspx页面中.

任何人都可以提供有关如何完成此任务的任何建议

提前致谢

更新方案
感谢詹姆斯帮助我工作.下面是当前实现中使用的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 …

那些不是ASP.NET TextBox控件;它们是HTML文本输入.要回答你的问题,你会这样做:

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

我注意到您在示例中设置了名称而不是ID.如果你有选择我会使用ID,但你可以按名称找到一个元素,如下所示:

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

如果您使用实际的ASP.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/

编辑

根据您的评论,以下是在模糊时将值从一个输入复制到另一个输入的方法:

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