简体   繁体   English

如何使用javascript / jQuery将值分配给动态创建的输入框

[英]How to assign value to dynamically created input box using javascript/Jquery

I am creating some input field dynamically using Jquery but need to assign value at the time of creation. 我正在使用Jquery动态创建一些输入字段,但需要在创建时分配值。 I am explaining my code below. 我在下面解释我的代码。

<input type="hidden" id="alldepdates" value="1,2,3,4">
<ul class="date_list input_fields_wrap">
<li><input type="text" name="ddates" id="ddates" value="1" readonly >
<a href="#" id="addbtn"><span style="margin-left:5px;min-width:20px;"><i class="fa fa-arrow-circle-down" style="font-size:18px;"></i></span></a><a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a></li>
</ul>

Here I have some comma separated string value inside hidden input field and 1st element of that comma separated string is displayed in read only field. 在这里,我在隐藏的输入字段中有一些逗号分隔的字符串值,并且该逗号分隔的字符串的第一个元素显示在只读字段中。

 <script>
    $(function(){ 
        var wrapper = $(".input_fields_wrap");
        var addButton = $("#addbtn");
        $(addButton).click(function(){
           var alld=$("#alldepdates").val();
           var alldsplit=alld.split(",");
           var restArr=alldsplit.shift();
           if(restArr.length > 0){
               $(wrapper).append("<li><input type="text" name="ddates" id="ddates" value="+restArr[0]+" readonly ><a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a></li>");                                                      

$("#alldepdates").val(restArr.join(","));
          };
    });
    })
    </script>;

Here my need is when user will click on down-arraow icon new field will created and always the first value of that comma separated string will assign to new field and when all value will be assigned then no field will create again. 这里我需要的是,当用户单击down-arraow图标时,将创建一个新字段,并且该逗号分隔的字符串的第一个值将始终分配给新字段,而当所有值都将被分配时,则不会再创建任何字段。

You are not formatting the htmlString correctly. 您没有正确格式化htmlString Should be: 应该:

'<li><input type="text" name="ddates" id="ddates" value="'+alldsplit[0]+'" readonly ><a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a></li>'

Though I prefer using Template Literals which allows embedded expressions. 尽管我更喜欢使用允许嵌入表达式的Template Literals

To attach event on dynamically created element you have to use on() . 要将事件附加到动态创建的元素上,必须使用on()

 $(function(){ var wrapper = $(".input_fields_wrap"); $('body').on('click', 'a', function(){ var alld=$("#alldepdates").val(); var alldsplit=alld.split(","); alldsplit.shift(); if(alldsplit.length > 0){ $(wrapper).append(`<li><input type="text" name="ddates" id="ddates" value="${alldsplit[0]}" readonly ><a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a></li>`); $("#alldepdates").val(alldsplit.join(",")); }; }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="hidden" id="alldepdates" value="1,2,3,4"> <ul class="date_list input_fields_wrap"> <li><input type="text" name="ddates" id="ddates" value="1" readonly > <a href="#" id="addbtn"><span style="margin-left:5px;min-width:20px;"><i class="fa fa-arrow-circle-down" style="font-size:18px;"></i></span></a><a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a></li> </ul> 

$(document).on('click', "#addbtn", function() {
   var alld=$("#alldepdates").val();
   var alldsplit=alld.split(",");
   var restArr=alldsplit.shift();
   if(restArr.length > 0){
       $(wrapper).append('<li><input type="text" name="ddates" id="ddates" value="'+restArr[0]+'" readonly ><a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a></li>');                                                           
       $("#alldepdates").val(alldsplit.join());
  };

You can do it easily. 您可以轻松做到。 You just need to know that array.shift removes and returns the first element of array. 您只需要知道array.shift会删除并返回array的第一个元素。

$(function () {
  var wrapper = $('.input_fields_wrap');
  var addButton = $('#addbtn');

  $(addButton).click(function () {
    var alld = $('#alldepdates').val();
    var alldsplit = alld.split(',');
    var removedArrayElement = alldsplit.shift();
    if (alldsplit.length > 0) {

      var inputMarkup = '<input type="text" name="ddates" id="ddates_' + alldsplit.length + '" value="' + removedArrayElement + '" readonly />';
      var anchorMarkup = '<a class="btn btn-xs btn-action mob-m-button pull-right" style="padding: 2px 4px;" href="#">Book Now</a>';

      $(wrapper).append('<li>' + inputMarkup + anchorMarkup + '</li>');

      $("#alldepdates").val(alldsplit.join(','));
    };
  });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用jQuery JavaScript在jsp中获取动态创建的文本框值 - How to get the dynamically created text box value in jsp using jquery javascript 如何更改动态创建的输入元素的值javascript / jquery - how to change value of dynamically created input elements javascript/jquery 如何使用jQuery动态基于其他输入框更新值? - How to update value based on other input box dynamically using jQuery? 如何使用javascript插入和获取动态创建的输入字段的值? - How to insert and get the value of a dynamically created input field using javascript? 如何引用在JavaScript中动态创建的输入的值 - How to refer to the value of an input that was created dynamically in JavaScript 如何在IE8和IE9中使用JavaScript或JQuery获取输入值和动态创建的输入的选定值? - How do I get input value and Selected Value of dynamically created inputs using JavaScript or JQuery in IE8 and IE9? 如何从JavaScript中动态创建的输入框中获取值 - How to get values from dynamically created input box in javascript 从输入框中获取值并使用Javascript将其分配给变量 - Getting a Value from an Input Box and Assign it in a Variable using Javascript 如何使用 javascript 将 onclick 事件分配给动态创建的按钮 - how to assign onclick events to dynamically-created buttons using javascript 如何使用 javascript 为输入 function 赋值 - how to assign value to input function using javascript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM