Using .serialize() on a dynamically loaded form?
I'm creating an inventory management back-end for an intranet application. The user has to indicate whether the item is "Non-Inventory" or "Inventory". Each item type has it's own set of fields so this distinction loads the proper data entry form via:
- $("input[name^='ProdType']").click(function(){
- $('#EntryForm').hide('slow').html('');
- var ItemType =$(this).attr('value');
- var pageLoad;
- if(ItemType=='noninventory'){
- pageLoad = 'noninventory_form.html';
- }else{
- pageLoad = 'inventory_form.html'
- }
- $('#EntryForm').load(pageLoad,function(){
- $( 'textarea.editor' ).ckeditor();
- }).show('slow');
- });
The form loaded via inventory_form.html is:
- <form>
- <h2 align="center">Inventory Item</h2>
- <div class="label">Manufacturer's #</div>
- <div><input id="ManufacturerPartNumber" name="ManufacturerPartNumber" type="text" size="35" maxlength="31" /></div>
- <div class="label required">Item Name:</div>
- <div><input id="Name" name="Name" type="text" class="required" size="35" maxlength="159" value="" /></div>
- <div class="label required">Unit Cost:</div>
- <div><input id="PurchaseCost" name="PurchaseCost" type="text" class="required" size="6" value="" /></div>
- <div class="label required">Retail Price:</div>
- <div><input id="SalesPrice" name="SalesPrice" type="text" class="required" size="6" value="" /></div>
- <div class="label top required">Description:</div>
- <div colspan="10"><textarea id="SalesDesc" name="SalesDesc" class="editor" cols="80" rows="2"></textarea></div>
- <div class="label required">Product Status:</div>
- <div>
- <input id="IsActive" name="IsActive" type="radio" value="0" checked="checked" />Inactive
- <input id="IsActive" name="IsActive" type="radio" value="1" />Active
- </div>
- <div colspan="20" align="center">
- <input id="btnInventory" type="submit" value="Add Inventory Item" />
- <input id="btnCancel" type="button" value="Cancel" />
- </div>
- </form>
I thought I could simply use the .serialize() method like so:
- $('form').submit(function() {
- alert($('form').serialize()); //alert simply to show that the form was serialized.
- return false;
- });
However this does not work. The form is simply submitted right back to the page. The alert is never triggered. Do I need to bind an event to the form or the form's submit button? Bit lost here.
Thanks for any guidance.