0

我有一个表格,我在其中询问用户他们需要多少个文件输入,并且我想根据答案动态生成合适数量的文件浏览输入。

这是我的尝试:

$("#howmany").change(function() 
{
    var htmlString = "";
    var len = $(this).val();
        for (var i = 0; i <= len; i++) 
        {
            htmlString += "
                    <tr>
                    <td>
                    <input name="ufile[]" type="file" id="ufile[]" size="50" />
                    </td>
                    </tr>
                    ";                      
        }
        $("#dynamic_upload").html(htmlString);
}

HTML

<input id="howmany" />

<table id="dynamic_upload"> 
</table>

这个想法是重复输入的“单位”将根据输入的数字生成。

但它不起作用,知道我哪里出错了吗?

编辑:更清楚地说明“它不起作用”(道歉)。当我包含此代码时,在“多少”字段中输入数字后,没有明显的反应。没有错误消息出现,虽然 - 在我不知道如何阅读的地方有错误日志吗?(对此很陌生)

4

2 回答 2

2

不可能创建这样的字符串。尝试:

        htmlString += "<tr>";
        htmlString += "<td>";
        htmlString += '<input name="ufile[]" type="file" id="ufile[]" size="50" />';
        htmlString += "</td>";
        htmlString += "</tr>";

还要记住,如果字符串包含双引号,则需要在字符串周围使用单引号,或者将它们转义。

函数末尾也缺少您);

    $("#dynamic_upload").html(htmlString);
} <--- this should be  });
于 2012-11-29T07:42:51.247 回答
1

JavaScript 字符串中不能有换行符。此外,您在字符串中使用双引号(即用于<input>属性)。可能的重写:

htmlString += '<tr><td><input name="ufile[]" type="file" id="ufile[]" size="50"></td></tr>';

以后,请给出一个比“它不工作”更具描述性的问题——例如,您是否收到任何错误消息?

于 2012-11-29T07:41:56.767 回答