Autor | Zpráva | ||
---|---|---|---|
PetrQ Profil |
#1 · Zasláno: 29. 11. 2009, 14:36:09
Ahoj všem,
prosím o radu - používám jquery pro přiřazení ceny k určité položce ze select boxu. Celý formulář má jednu řádku, pokud chce uživatel přidat další, provede se to opět přes jquery a clone. Problém je, že v dalších řádcích nelze po zvolení jiné položky ze selectu, přiřadit správnou cenu. Je to použitý plugin jquery, protože sám to nevymyslím ... Nemůžu přijít na to, jak to pořešit. Díky všem za radu Petr <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.table.addrow.js"></script> <script type="text/javascript"> (function($){ $(document).ready(function(){ $(".addRow").btnAddRow(); $(".delRow").btnDelRow(); }); })(jQuery); </script> <script type="text/javascript"> var message = new Array() message["Akustické klasická kytara"]="3000"; message["Akustické dreadnought"]="500"; $(document).ready( function (){ $(".item_select").change(function() { var message_index message_index = $(".item_select").val(); $(".message_display").empty(); //if (message_index > 0) $(".message_display").append(message[message_index]); //$("input").val(message_index); $(".price").val(message[message_index]); }); }); </script> </head> <body> <br /> <br /> <font color='#CC3300' size='5'>Objednávka</font><br /> <br /> <form method='POST' name='signupForm' class='cmxform' id='signupForm' action='#'> <table cellspacing='0'> <tr> <th style='text-align: center;'></th> <th>Model</th> <th>Cena</th> </tr> <tr> <td><input type='button' class='delRow' style='height: 25px; margin: 0 0 10px 0;' value='X'/></td> <div> <td><select class='item_select' name='item_select' style='width:200px; margin: 0 0 10px 0;'> <option value='Akustické klasická kytara'>Akustické - klasická kytara</option> <option value='Akustické dreadnought'>Akustické - dreadnought</option> </select> </td> <td><input type='text' name='price' class='price' style='margin: 0 0 10px 0;' size='2' value=''></td> </div> </tr> <tr> <td colspan='3' align='right'><input type='button' class='addRow' name='add' value='Přidej řádek'/></td> </tr> <tr> <td colspan='5' align='center'><input type='submit' name='send' value='Potvrdit objednávku'></td> </tr> </table> </form> </body> </html> |
||
Chamurappi Profil |
#2 · Zasláno: 29. 11. 2009, 20:36:24
Reaguji na PetraQ:
Předpokládáš, že si někdo zkopíruje uvedený kód do své stránky, přilinkuje si k němu svoji kopii jQuery, dohledá si příslušný plugin, ten přilinkuje a začne zkoumat, v čem je problém? Marně. Prosím o odkaz na živou ukázku. „v dalších řádcích nelze po zvolení jiné položky ze selectu, přiřadit správnou cenu“ Selektory v jQuery nefungují stejně jako v CSS — pokud se změní struktura dokumentu, nevyhodnocují se znovu, takže pro nově vzniknuvší „.item_select“ se nenastaví tatáž „change“, co se nastavila pro ten první. „var message = new Array()“ Proč Array? |
||
PetrQ Profil |
#3 · Zasláno: 29. 11. 2009, 20:56:17
Díky za reakci,
omlouvám se, domníval jsem se, že to bude triviální věc, protože javascript vůbec neznám. 1) odkaz je Odkaz 2) „var message = new Array()“ protože to tak psali v tutorialu |
||
Leo Profil |
#4 · Zasláno: 29. 11. 2009, 21:01:46
PetrQ:
"„var message = new Array()“ protože to tak psali v tutorialu" Neveřte všemu, co se kde píše a hlavně u JavaScriptu. Problém je v tom, že to nehlásí chybu a lidi to používají dál, i když je to zbytečná deklarace. Když už tak var message = {}; Leo |
||
Časová prodleva: 14 let
|
0