表单上的jquery .live提交没有动态添加的输入

时间:2010-09-23 19:09:30

标签: serialization jquery

当我的ajaxupload脚本完成时,它会添加一个只读输入w /图像URL的值。

这是一个很长的脚本,但我认为这是成功完成时触发的相关部分:

var location = '<div id="'+ID+'_location" class="img_location">' + '<input name="'+ID+'" class="location regular-text" type="text" size="50" readonly="readonly" value="'+response+'" />';

$(container).append(location).show(); //create readonly input

$(容器)被定义为上传按钮的父div。该部分似乎工作...图像上传,它被正确保存,输入w /图像的位置被添加到DOM。但我发现了一个错误,如果我单击我的SAVE按钮(触发我的ajax保存功能),则不会捕获此新输入。

这是我的保存功能:

  $('form#childoptions').live('submit', function(e) {

      e.preventDefault();

      var values = $(this).serialize();
      alert(values);


      var data = {
        action: 'save_function',
        type : 'save',
        _nonce: '<?php echo $nonce; ?>',
        formdata: values
    };
      $.post(ajaxurl, data, function(response) {
            //alert(response);
         if(response == 1) {
              show_message(1);
              t = setTimeout('fade_message()', 2000);
          } else {
              show_message(99);
              t = setTimeout('fade_message()', 2000);
          }
      });

      //return false;
  }); 

仅捕获新输入。其余的工作正常。因为我假设输入是DOM的一部分,所以如果我之间刷新也没有问题。这就是为什么我想用.live。我以为我已经解决了两次问题 - 1.我没有在动态输入上使用“名称”和2.我没有在表单上使用.live。但现在我正在做两件事,而不是在任何地方。

非常感谢所有帮助。如果我能提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

您似乎在整个表单上使用live,而不是在输入上。因此,实时事件绑定将尝试使用id子选项拾取新表单。这不行。你最好使用bind()代替。你试过了吗?

$('form#childoptions').bind('submit', function(e) {…}

我很好奇这是否能解决你的问题。