Плагин ajaxForm обычно отправляет форму без ajax

У меня есть два сценария:

Во-первых: у меня есть HTML-форма на странице, на которой я использую плагин ajaxForm для загрузки файла через ajax, и он отлично работает.

Во-вторых: я создаю другую HTML-форму через php и ajax, на которой я пытаюсь использовать тот же плагин, но он обычно отправляет форму и выводит результат в браузере.

Разве ajaxForm не работает с динамически генерируемыми формами?? Я знаю, что глупо даже спрашивать, но моя текущая ситуация, кажется, заставляет меня поверить в это.

Пожалуйста помоги...

Первая форма: это СТАТИЧЕСКАЯ форма, написанная на HTML-странице. AJAXFORM отлично работает с этим...

  <form action="brand_add.php" method="post" enctype="multipart/form-data" name="brands_form" id="brands_form">
 <input type="hidden" name="brand_timeVal" id="brand_timeVal" />
 <table>
 <tr><td><label>Title<label></td></tr>
 <tr><td><input type="text" id="brand_title" name="brand_title" autocomplete="off" class="large inputTexts" placeholder="e.g. Adidas, Puma, SS, BDM, Cosco, Head, Spalding etc..." /></td></tr>
 <tr><td><label>Description<label></td></tr>
 <tr><td><textarea class="inputTexts" id="brand_desc" name="brand_desc"></textarea></td>              </tr>
<tr><td><label>Brand Image<label></td></tr>
<tr><td><input type="file" name="brand_img" id="brand_img" onchange="sub(this,this.id)">    </td></tr>
<tr><td><input type="submit" class="saveButton" value="Save" id="brand_save_btn" onclick="timing(this.id,'brand_timeVal');"><button type="button" onclick="clearBox(); return false" class="cancelButton" style="margin-left:5px;">Cancel</button></td></tr>
</table>
</form>

Вторая форма: динамически генерируется через запрос ajax. AJAXFORM не работает.

 <?php

 $response .= "<div class='update_box_header'><span class='breadcrumb'><a href='brands.php'>Brands</a></span> / Update Brand</div>
 <div class='update_box_form'>
 <form action='#' method='post' enctype='multipart/form-data' name='brands_form_update' id='brands_form_update'>
<input type='hidden' name='brand_timeVal_update' id='brand_timeVal_update' />
<input type='hidden' name='brand_update_id' value='".$id."' />
<input type='hidden' name='brand_update_file_toggler_value' value='1' />
<table>
<tr><td><label>Title<label></td></tr>
<tr><td><input type='text' id='brand_title_update' name='brand_title_update' class='large inputTexts' value='".$row1['name']."' /></td></tr>
<tr><td><label>Description<label></td></tr>
<tr><td><textarea class='inputTexts' id='brand_desc_update' name='brand_desc_update'>".$row1['description']."</textarea></td></tr>
<tr><td><label>Brand Image<label></td></tr>

<tr><td id='brand_img_field'><img src='assets/brands/banners/".$img_path."' border='0' width='100' height='50' /></td></tr>
<tr><td><label>Upload New Image<label></td></tr>
<tr><td><input type='file' accept='image/*' name='brand_img_update' id='brand_img_update' onchange='sub(this,this.id)'></td></tr>
<tr><td><label>Status<label></td></tr>
<tr><td><select name='brand_life_update' id='brand_life_update'>";
        if($row1['status'] == 1){
$response .= "<option value='1' selected>Active</option><option value='0'>Inactive</option>";
             }
        else if($row1['status'] == 0) {
$response .= "<option value='1'>Active</option><option value='0' selected>Inactive</option>"; 
            }

  $response .= "</select></td></tr>
 <tr><td><input type='submit' class='saveButton' value='Save' id='brand_update_btn' onclick='timing(this.id,'brand_timeVal_update');'><button type='button' onclick='clearUpdateBox(); return false' class='cancelButton' style='margin-left:5px;'>Cancel</button></td></tr>
 </table>
 </form>
 </div>";


 ?> 

person coder101    schedule 12.12.2013    source источник
comment
Можете ли вы дать нам Fidde/какой-нибудь код, чтобы мы могли попытаться понять, что происходит не так?   -  person daker    schedule 12.12.2013
comment
@daker У меня есть две формы: одна написана на HTML (статическая), а другая динамически генерируется через AJAX. Вы хотите, чтобы я написал обе формы здесь?   -  person coder101    schedule 12.12.2013
comment
@daker Я отредактировал вопрос ..   -  person coder101    schedule 12.12.2013
comment
Как вы добавляете эту вторую форму? Использование jquery ajax/post или что-то еще?   -  person daker    schedule 12.12.2013
comment
@daker да, я использую jquery ajax, чтобы добавить эту вторую форму.   -  person coder101    schedule 12.12.2013


Ответы (1)


Разместите свой код javascript.


Слепое предположение: вы пытаетесь настроить ajaxForm до того, как он действительно появится на странице.

Если вы хотите запустить ajaxForm в '#brands_form_update', вы должны запросить его, вставить в документ, затем вызвать ajaxForm. Это должно дать что-то вроде:

// $.get(...) sends the request
// $(..).append inserts the form inside the document
// $('#brands_form_update').ajaxForm() sets up the form
$.get('myDynamicForm.php', { ...data...}, function(html){
    $('*mySelector*').append(html);
    $('#brands_form_update').ajaxForm();
});
person LeGEC    schedule 12.12.2013