javascript - How to read html form contents using jquery? -


i have html form in can add input element dynamically using jquery. @ end want submit/read data on form. used serialize method gives me data of elements on form , not if dynamically added elements.

here work:

<html> <head>     <title></title>     <script type="text/javascript" src="jquery-1.11.1.min.js"></script>     <script type="text/javascript">          function call(class_name) {              console.log(class_name);             $("#new_append_pass").append('<input type="password" class="username_' + class_name + '" name="pass">');         }         $(document).ready(function () {             var count = 0;             var alt, str;             $(".user_pass ").click(function () {                 $("#append_me").append('<input type="password" class="' + $("#append_me").attr("alt") + '" name="pass">');             });              $(".new_user_pass ").click(function () {                 count = count + 1;                 alt = $("#new_append_me").attr("alt") + "_" + count;                 str = '<input type="text" class="username_' + count + '" name="username">' +                 '<input type="password" class="' + alt + '" name="pass">' +                 '<span alt="username_' + count + '" id="new_append_pass"></span>' +                 '<a href="#" onclick="call(' + count + ')" class="add_new_pass"> add pass </a>';                 $("#new_append_me").append(str);              });               $("#submit").click(function () {                  var get_class_name = $(".user_pass").find("input[type=text]").attr("name");                 var get_class_name1 = $("#new_append_me").find("input[type=text]").attr("name");                 console.log($("." + get_class_name).serialize());                 console.log($("." + get_class_name1).serialize());             });         });      </script> </head> <body>      <div class="main">         <div class="user_pass">             <input type="text" class="username" name="username" />             <input type="password" class="username" id="username" name="pass" />             <span alt="username" id="append_me"></span>             <a href="#">add pass </a>              <div class="new_user_pass">                 <a href="#">add user </a>                 <span alt="username" id="new_append_me"></span>             </div>         </div>     </div>     <input type="button" value="submit" id="submit" /> </body> </html> 

how read contents of dynamically added form elements???

please consider following steps improve markup structure. tough decode snippets in fiddle.

  1. each <input> element has different class, different attributes. , trying access them using common selector.
  2. your <a> links should have unique attribute or selector. both fired on click of 'add user'
  3. try use separate <div>s or atleast appropriate selectors accessing 2 different sets of <input> elements.
  4. none of <input> elements has same class. $('classname').serialize() never work elements.
  5. .attr('name') getting class? wrong logic; 'name' attributes each <input> not same.
  6. use delegation using .on(), in case of dynamically generated elements.
  7. keep common convention; either class selector or id's, don't mix them.

and here fiddle solution. made changes in html attributes, click events , everything.


Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -