未捕获的TypeError:无法读取属性' push'未定义的

时间:2016-07-12 04:54:36

标签: jquery ajax

Hello Everyone我用jquery生成一个textbox。它是通过jquery动态生成的。现在问题是我想在ajax函数中获取文本框值,然后ajax将这个值传递给我提到的其他php页面。当我在文本框中键入文本时,它会提醒我在单击“提交”按钮时输入的值,但是它没有将此值传递给其他页面,因为它给出了错误:

  

-Uncaught TypeError:无法读取属性' push'未定义的。

我的代码是: - 在第一个脚本我用来动态生成texbox,在第二个脚本中我想获取文本框的值并将该值传递给php文件。 在第二个脚本中,我在此行中有上述错误
dynamic_text.push($(this).parents("tr").find(".dynamic_text").val())

<script>
  jQuery(function($){  
   $(".select_drop").on('change', function(){
     var $this = $(this),
         selectedType = $this.val();
     if($this.closest('tr').find('.dynamic_text').length == 0) $(this).closest('tr').append("<table><tr><td><form method='post'><input type='text' class='dynamic_text'><td></form></td></tr></table>")
     //if($this.closest('tr').find('.dynamic_text').length == 0) $(this).closest('tr').append("<form method='post'><td><input type='text' class='dynamic_text'></td></form>")
    });
  });
  </script>
<script>
$(document).ready(function(){
$('#submit').click(function(){
  <?php global $store; ?>
             var store= '<?php echo $store; ?>'; 
 var textbox = [];
   var textbox1 = [];
    var check = [];
    //var dynamic_text= $('.dynamic_text').val();
var dynamic_text;
   // alert(dynamic_text);
   $('.check').each(function() {
 if ($(this).is(':checked')) {
               var current = $(this).val();

              //alert(current);
             textbox.push($(this).parents("tr").find(".textbox").val())
             textbox1.push($(this).parents("tr").find(".textbox1").val())
            dynamic_text.push($(this).parents("tr").find(".dynamic_text").val())

         }
  check.push($(this).val());
});

               $.ajax({
             url: 'aj2.php',
             type: 'post',
             data: { check: textbox, store: store, oldval: textbox1,dynamic_text:dynamic_text},
             success:function(data){
              alert(data);
 //alert("Data save!!!");
             }
         });
return false;
});
});
</script>

编辑:突出显示错误

1 个答案:

答案 0 :(得分:0)

这是因为您没有为变量dynamic_text设置值:

 var dynamic_text;

因此,它的值为undefined。显然undefined没有.push()方法;那个错误在说什么:

  

无法读取属性&#39;推送&#39;未定义的

您需要将变量定义为数组:

var dynamic_text = [];