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

标签 jquery asp.net webforms

在网络表单中,我有一些输入字段

<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 层中。我想要做的不是将字段名和值添加到 DIV 元素,而是希望将它们添加到 asp:textbox 控件。

enter image description here

最好将此代码存储在外部 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:textbox。 示例 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/

编辑

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

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

关于jquery - 使用 jQuery 将文本添加到 asp.net 文本框控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081469/

相关文章:

go - 使用Go处理后期请求中的多个文件

jquery - 如何在 VS.NET 2012 中的 ASP.NET Web 表单中使用 jQuery 文件?

javascript - 页面周围的静态框架随着滚动改变颜色

jquery - jQuery 的 val() 和 prop() 方法是否使用 html 转义值?

javascript - jquery:计算数据属性中的单词数

c# - Webform 中的 HTML 助手?

c# - 跨多个应用程序池的 ASP.Net C# 共享 session

c# - 如何在新的EXCEL表中写入数据

更改标签文本的 Asp.net 验证错误消息

javascript - 如何在单击时水平滚动到特定的 div