Как присвоить значение динамически создаваемого текстового поля в JQuery?

0

Я создал динамическое текстовое поле, используя jquery для имени продукта и идентификатора продукта, я создал уникальный идентификатор для каждого текстового поля, и я хочу присвоить значение текстовому полю. мой код выглядит следующим образом:

<script type="text/javascript">

$(document).ready(function () {
    var rIndex = $(".ProductName").length;
    var ndate = new Date();
    var time = ndate.getMilliseconds();

    var i = rIndex + time;
    var a1, a2;


    $("#lnkAddProduct").on("click", function () {


     var d = '<div class="addedProduct "><div class="control-group " style="margin-bottom:10px;"><input type="text" class="ProductName span2 pull-left" id="Product_Name_' + i + '" name="Product_Name" value="" placeholder="start typing to load products")"/><input type="text" class="ProductId" name="Product_Id" id="Product_Id_' + i + '" value="" /><a href="#" class="clsremove font-midium" style="margin-left:5px;margin-top:5px;" id="remove_' + i + '">remove</a></div></div>';

        $('#ProductList').append(d);
        alert("newID:"+i);

        //$(".clsremove").unbind("click").click(function () {
        //    $(this).closest(".addedProduct").remove();
        //});


        $('body').delegate(".ProductName", "focusin", function () {

            $(this).autocomplete({
                source: '@Url.Action("NewvendorList","Product")',

            minLength: 1,

            select: function (evt, ui) {
                 a1 = ui.item.label;
                 a2 = ui.item.id;

                alert("label" + ui.item.label);
                alert("id" + ui.item.id);

                 $('#Product_Name_'+i).val(a1);
                alert("i===" + i);

                $('#Product_Id_'+i).val(a2)

            },
        });
      });
        i = i + 1;          
    });
}); 

$ ('# Product_Name _' +i). Val (a1) для этой ошибки строки не определен. как назначить значение для значения в текстовые поля.

  • 0
    Похоже, здесь не должно быть круглых скобок и следующей двойной кавычки: placeholder = "начать печатать, чтобы загрузить продукты") "/> (похоже, это проблема)")
  • 0
    если вы предоставите скрипку, это будет легко увидеть
Теги:

1 ответ

0

$(document).ready(function () {
  var rIndex = $(".ProductName").length;
  var ndate = new Date();
  var time = ndate.getMilliseconds();

  var i = rIndex + time;
  var a1, a2;


  $("#lnkAddProduct").on("click", function () {


  var d = '<div class="addedProduct "><div class="control-group " style="margin-bottom:10px;"><input type="text" class="ProductName span2 pull-left" id="Product_Name_' + i + '" name="Product_Name" value="" placeholder="start typing to load products")"/><input type="text" class="ProductId" name="Product_Id" id="Product_Id_' + i + '" value="" /><a href="#" class="clsremove font-midium" style="margin-left:5px;margin-top:5px;" id="remove_' + i + '">remove</a></div></div>';

    $('#ProductList').append(d);
    alert("newID:"+i);

    //$(".clsremove").unbind("click").click(function () {
    //    $(this).closest(".addedProduct").remove();
    //});


    $(".ProductName").on("focusin", function () {

        $(this).autocomplete({
            source: '@Url.Action("NewvendorList","Product")',

        minLength: 1,

        select: function (evt, ui) {
             a1 = ui.item.label;
             a2 = ui.item.id;

            alert("label" + ui.item.label);
            alert("id" + ui.item.id);

             $('#Product_Name_'+i).val(a1);
            alert("i===" + i);

            $('#Product_Id_'+i).val(a2)

        },
    });
  });
    i = i + 1;          
  });
 }); 
 replace your code with above and test it
  • 0
    Пожалуйста, не просто отправьте код - объясните, что вы изменили и почему вы его изменили.
  • 0
    извините, я заменяю '$ (' body '). Delegate (". ProductName", "focusin", function () {' на "$ (". ProductName "). on (" focusin ", function () {'is это работает?
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню