如何在javascript中设置值动态创建的文本框

时间:2014-11-20 11:50:25

标签: javascript c# jquery html


我使用javascript动态生成一个包含文本框的对话框(它是一个div元素)。 问题:我可以很好地生成我的文本框,但我无法从中获取价值。 innerHTML每次都会变回空白。我不确定我做错了什么。

intTextBox = intTextBox + 1;
            var contentID = document.getElementById('content');
            var newTBDiv = document.createElement('div');
            newTBDiv.setAttribute('id', 'strText' + intTextBox);
            newTBDiv.innerHTML = String.fromCharCode(64 + (intTextBox + 2)) + ' :' 
                   + "<input style='margin-top:10px;margin-left:10px;width: 250px;'"
                   + " class='txt3_double' type='text' id='" 
                   + intTextBox + "' name='" + intTextBox 
                   + "' placeholder='Next Location Point'/>"
                   + "<img src='img/Add.png' onclick='addElement();return false;' />"
                   + "<img src='img/Minus.png' onclick='removeElement();return false;' />";
            contentID.appendChild(newTBDiv);
            textboxes = intTextBox;

            TextBoxloc = TextBoxloc + 1;
            var contentIDloc = document.getElementById('content');
            var newTBDivloc = document.createElement('div');
            newTBDivloc.setAttribute('id', 'strText' + TextBoxloc);
            newTBDivloc.innerHTML = String.fromCharCode(64 + (TextBoxloc + 2)) 
                       + ' :' + "<input class='txt3_double' type='text' id='" 
                       + TextBoxloc + "' name='" + TextBoxloc + "' />";
            contentIDloc.appendChild(newTBDivloc);
            textboxesloc = TextBoxloc ;

            $(document.getElementById(intTextBox)).autocomplete({
                source: function (request, response) {
                    debugger
                    $.ajax({
                        url: '<%=ResolveUrl("~/Root.aspx/GetAutoCompleteData") %>',
                        data: "{ 'Address': '" + request.term + "'}",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {
                            if (data.d.length == 0) {
                                $('.ui-autocomplete').hide();
                            }
                            else {
                                $(".pac-container").remove();
                                response($.map(data.d, function (item) {
                                    debugger
                                    return {
                                        label: item.split('-')[0],
                                        val: item.split('-')[1],
                                        long: item.split('-')[2]
                                    }
                                }))
                            }
                        },
                        error: function (response) {
                            alert(response.responseText);
                        },
                        failure: function (response) {
                            alert(response.responseText);
                        }
                    });
                },

                select: function (e, i) {
                    debugger
                    document.getElementById(TextBoxloc).value = i.item.val;
                },
                minLength: 2

            });

3 个答案:

答案 0 :(得分:0)

试试这个

document.getElementById(TextBoxloc).value = i.item.value;

i.item.val应为i.item.value

答案 1 :(得分:0)

我看到你正在添加&#34; strText&#34;在id属性中并尝试使用

设置值
document.getElementById(TextBoxloc).value = i.item.val;

你在i.item.val中得到了正确的值吗?

祝你好运......

答案 2 :(得分:0)

在您的代码中,我可以看到您在哪里创建具有来自intTextBox的唯一ID的单个文本框,因此要获取文本框中的文本,只需使用值:

&#13;
&#13;
var textboxVal = $(intTextBox).value;
&#13;
&#13;
&#13;