我有两种情况:
首先:我在页面上有一个HTML表单,我正在使用ajaxForm插件通过ajax上传文件,它运行正常。
第二:我正在通过php和ajax生成另一个HTML表单,我正在尝试使用相同的插件,但它正常提交表单并在浏览器中回显结果。
是否ajaxForm不能用于动态生成的表单?我知道这甚至都是愚蠢的,但我目前的情况似乎让我相信。
请帮忙......
First Form:这是一个写在HTML页面上的STATIC表单。 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>";
?>
答案 0 :(得分:1)
发布您的javascript代码。
一个盲目的猜测是:你试图在之前设置你的ajaxForm 它实际上存在于页面中。
如果要在'#brands_form_update'上运行ajaxForm,则必须请求它,将其插入文档中,然后调用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();
});