andrisp Posted September 23, 2008 Report Share Posted September 23, 2008 Nu tev javascripts tāds, kas nokopē visu elementu (ieskaitot jau ievadīto vērtību). Pielabo to, lai tas iepriekšējo vērtību unseto. Link to comment Share on other sites More sharing options...
Alnis Posted September 23, 2008 Report Share Posted September 23, 2008 (edited) maz man sajēgas no javascripra, pētu kodu krustām šķērsām. Nesaprotu, kāpēc šim <input type="file" name="img[]" /> dublējoties saturs netiek nodots, bet <input type="text" name="teext[]" /> saturs dublējās! Edited September 23, 2008 by Alnis Link to comment Share on other sites More sharing options...
Aleksejs Posted September 23, 2008 Report Share Posted September 23, 2008 Parādi to, kā šobrīd izskatās Tavs JavaScripts. Link to comment Share on other sites More sharing options...
Alnis Posted September 23, 2008 Report Share Posted September 23, 2008 (edited) nekas nav mainījies, viss ir kā http://paste.php.lv/1880, tikai iekš <span> ieliku vēl vienu Text input fieldu: <span id="sample"> Text:<input type="text" name="nododamais_txt[]" /> File:<input type="file" name="img[]" /></span> </span> ja pareizi saprotu, tad šī rinda: div.innerHTML='<div>'+byid('sample').innerHTML+'</div>' nokopē esošos formas elementus, kas ir iekš tagiem <span id="sample">! Bet kādā veidā text input fieldam unsetot vērtību, nemāku :( EDIT: neesmu pārliecināts vai viss strādā, bet atrisināju šitā: rindu div.innerHTML='<div>'+byid('sample').innerHTML+'<input type="button" onclick="remove(this)" value="-" /></div>'; nomainīju uz: div.innerHTML='<div>Text:<input type="text" name="nododamais_txt[]" />File:<input type="file" name="img[]" /><input type="button" onclick="remove(this)" value="-" /></div>'; mīnus protams ir tāds, ka, ja es iekš <span> gribēšu ielikt vēl kādu elementu, man tas būs jāiebaksta arī jaunradītajā rindā! Visādi citādi izskatās, ka vērtības tiek nodotas un ar $_REQUEST smuki arī nolasās! no ķēdes tika izslēgta function byid(id), man tā arī neizdevās saprast, ko viņa īsti dara :D Edited September 23, 2008 by Alnis Link to comment Share on other sites More sharing options...
andrisp Posted September 24, 2008 Report Share Posted September 24, 2008 Tas byid() tev atgriež elementu pēc ID. Un tā kā tu viņu kopē, tad visi atribūti arī tiek nokopēti. Arī value. Link to comment Share on other sites More sharing options...
Alnis Posted September 24, 2008 Report Share Posted September 24, 2008 Tas byid() tev atgriež elementu pēc ID. Un tā kā tu viņu kopē, tad visi atribūti arī tiek nokopēti. Arī value. OK, tatad atgriež visu elementu tāds kāds ir, bet es nesaprotu: 1. kāpēc viņš neatgriež input=file vērtību? 2. kā es varētu unsetot atgrieztā elementa vērtību: 2.1. ok, sākumā, es viņu nokopēju; 2.2. talāk, pirms izvades vajadzētu vērtību nodzēst, kā tas darāms? ja es lietas sarežģīju, tad nevajag iespring, jo vajadzīgais rezultāts it kā tika rasts, vienīgi radās spotiska interese par to unestošanu nokopētajam elementam! Link to comment Share on other sites More sharing options...
andrisp Posted September 24, 2008 Report Share Posted September 24, 2008 1. Tas ir drošībai (kinda). Un arī loģiski nebūt augšupielādēt vienu un to pašu failu divreiz. Btw, atceries, ka ar JS vispār type="file" vērtību nav iespējams mainīt. 2. Ar JS protams ;) var template = byid('sampe').cloneNode(true); template.getElementByTagName('input')[0].value = ''; // tālāk veic ievietošanu ar template.innerHTML. Šis gan strādās pareizi tikai tad, ja type="text" būs pirmais input elements. Link to comment Share on other sites More sharing options...
Alnis Posted September 25, 2008 Report Share Posted September 25, 2008 var template = byid('sample').cloneNode(true); template.getElementByTagName('input')[0].value = ''; div.innerHTML='<div>'+template.innerHTML+'<input type="button" onclick="remove(this)" value="-" /></div>'; Kas man nepareizi??? Link to comment Share on other sites More sharing options...
andrisp Posted September 25, 2008 Report Share Posted September 25, 2008 A kas notiek ? Link to comment Share on other sites More sharing options...
Alnis Posted September 25, 2008 Report Share Posted September 25, 2008 (edited) nepievieno jaunus input laukus vispār :( Edited September 25, 2008 by Alnis Link to comment Share on other sites More sharing options...
andrisp Posted September 25, 2008 Report Share Posted September 25, 2008 Javascript errors izlec ? Link to comment Share on other sites More sharing options...
Alnis Posted September 25, 2008 Report Share Posted September 25, 2008 Object doesn't support this property of method Line:59 Line 59: template.getElementByTagName('input')[0].value = ''; Link to comment Share on other sites More sharing options...
andrisp Posted September 25, 2008 Report Share Posted September 25, 2008 ah, metodes nosaukums nepareizs. getElementsByTagName Link to comment Share on other sites More sharing options...
Alnis Posted September 25, 2008 Report Share Posted September 25, 2008 jap, paldies, tagad šancē :)) Link to comment Share on other sites More sharing options...
Alnis Posted September 25, 2008 Report Share Posted September 25, 2008 (edited) bet līdz nobela prēmijai man vēl atlicis atrisināt vēl vienu probzu :D tātad, esmu ielicis divus input laukus, kuros ierakstītot vērtības parādās reizinājums trešajā input laukā. Pirmā rinda smuki reizinās, bet klonētājās rindās nekas nereizinās :( Viss penteris izskatās šādi (cerams neatraušos pa pa knābi šeit izliekot visu kodu): <script language="JavaScript" type="text/javascript"> function reizinajums(formz) { sum_result = (form.sum_result.value); vienscipars = document.getElementById("nododamais_txt1[]").value; otrscipars = document.getElementById("nododamais_txt2[]").value; //sum_result= (viens * divi); sum_result= (vienscipars * otrscipars); //document.write("sum_result") // ar so nododam formai, kurai jaaparada aprekinata vertiba form.document.getElementById("sum_result").value = sum_result.toFixed(2); } </script> <form id="form" name="form" method="get"> <span id="sample"> <? tfunkc(); function tfunkc(){ ?> Text1:<input id="nododamais_txt1[]" name="nododamais_txt1[]" onkeyup="reizinajums(this.formz)" /> Text2:<input id="nododamais_txt2[]" name="nododamais_txt2[]" onkeyup="reizinajums(this.formz)" /> Text3:<input id="sum_result[]" name="sum_result[]" READONLY /> <? } ?> <script>reizinajums(this.form, '1', '1');</script> </span> <input id="plus" style="display:none" type="button" value="+" onclick="plusone()"> <div id="added"></div> <input type="submit" value="iesniegt"></input> </form> <script type="text/javascript"> function byid(id)//atgriež objektu pēc tā id { if (document.getElementById) return (document.getElementById(id)); if (document.all) return document.all[id]; if (document.layers) return document.layers[id]; return false; } function remove(elt) { /* pēc elementu pievienoſanas mums sanāk <div id="added"> <div> <input faila pievienoſanai> <input mīnuss> </div> </div> funkcija "iziet augſā" -> no input mīnuss uz aptveroſo divu > div.added, un izdzēſ aptveroſo divu ar tā input apakſelementiem*/ elt.parentNode.parentNode.removeChild(elt.parentNode); } function plusone() { //izveidojam jaunu <div> elementu, pagaidām tikai atmiņā div=document.createElement('div'); var template = byid('sample').cloneNode(true); template.getElementsByTagName('input')[0].value = ''; template.getElementsByTagName('input')[1].value = ''; template.getElementsByTagName('input')[2].value = ''; innerHTML=template.innerHTML; div.innerHTML='<div>'+template.innerHTML+'<input type="button" onclick="remove(this)" value="-" /></div>'; //pievienojam diva ar id="added" beigās izveidoto divu, htmlā byid('added').appendChild(div); } if (document.body.innerHTML) byid('plus').style['display']='inline'; </script> </body> </html> template.getElementsByTagName('input')[2].value = ''; šito pieliku, lai reizinājuma inout laukā nerādītos pirmo lauku reizinājuma klons. Ja pareizi saprotu, tad klonētajiem DIViem netiek izsaukta funkcija tfunkc(). Ja mēs paskatamies tālāk, tad man to reizinājumu lauki beigās būs jāsaskaita, moš šis risinājums nav tas labākais un kaukā savādāk jābetonē? Paldies par helpu :) Vai tik probza nav tajā, ka izaucot funkciju reizinajums() netiek padota vērtība sum_result[]??? nu tobiš ar konkrēto indexu? Edited September 25, 2008 by Alnis Link to comment Share on other sites More sharing options...
Recommended Posts