You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Web Forms中如何正确将JavaScript变量值插入字符串?

问题解决:JavaScript动态添加文本框时变量值未正确传递

你的问题出在字符串拼接的引号语法错误,导致变量i没有被解析,反而被当成了字符串的一部分。下面是两种可行的修复方案:

方案1:修正字符串拼接的引号

把placeholder='+i+'改成placeholder="'+i+'",让JavaScript正确识别变量i并替换其值。修正后的代码如下:

<script type="text/javascript">
    var i = "Placeholder";
    $("#partAdder").click(function () {
        newPart =
            '<div class="row" id="row">' +
            '<div class="col-xl-2">' +
            '<div class="form-group">' +
            '<input type="text" runat="server" class="form-control form-control-sm" placeholder="'+i+'" />' +
            '</div>' +
            '</div>' +
            '</div>';
        $('#newistrpart').append(newPart);
     });
</script>

方案2:使用ES6模板字符串(更简洁)

用反引号()包裹整个HTML片段,变量直接用${i}`插入,这种写法直观且不易出现引号冲突:

<script type="text/javascript">
    var i = "Placeholder";
    $("#partAdder").click(function () {
        const newPart = `
            <div class="row" id="row">
                <div class="col-xl-2">
                    <div class="form-group">
                        <input type="text" runat="server" class="form-control form-control-sm" placeholder="${i}" />
                    </div>
                </div>
            </div>
        `;
        $('#newistrpart').append(newPart);
     });
</script>

额外注意

你添加的runat="server"属性在客户端动态生成的元素上是无效的——ASP.NET服务器端无法识别通过JavaScript在客户端创建的服务器控件,如果你需要在后台获取这些文本框的值,得改用其他方式(比如提交时通过JS收集值,或者用服务器端控件动态添加)。

内容的提问来源于stack exchange,提问作者Abd El-Rahman Sayed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:12:54