Autor Zpráva
rypar
Profil
Ahoj,
mam input, do ktereho po kliknuti nacitam hodnotu, kterou je slovo oddelene carkou a mezerou. Tato hodnota je promennou. Funguje to na tento kod:

    document.getElementById("nazvykomp").value += naz ';


avsak kdyz chci z tohoto inputu odmazat po opetovnem kliknuti tento vyraz ulozeny v promenne, tak jiz tento kod (***) nefunguje:

document.getElementById("nazvykomp").value -= naz ';


celkove tato funkce vypada takto:

 function check(chbx,img,nazvy) {
 imgs=Array("img/kup.png","img/nekup.png");       
   if (document.getElementById(chbx).checked == true) {              //kdyz je checkbox zaskrtly
      document.getElementById(chbx).checked = false;                  //odskrtne ho
      document.getElementById(img).src=imgs[0];                         //vymeni obrazek
      totalPrice -= parseInt(document.getElementsByName(chbx)[0].value);  //odecte cenu
      document.getElementById("totalprix").value = totalPrice;
      document.getElementById("nazvykomp").value -= nazvy + ", " ';      //***ma odecist z inputu promennou nazvy (dopredu nevime, kde se v retezci nachazi, vime jen jeji hodnotu - tou je slovo, nikoli cislo
   }

   else {                                                                            //kdyz neni checkbox zaskrtly
      document.getElementById(chbx).checked = true;     //zaskrtne ho
      document.getElementById(img).src=imgs[1];           //vymeni obrazek
      totalPrice += parseInt(document.getElementsByName(chbx)[0].value);   //pricte cenu
      document.getElementById("totalprix").value = totalPrice;
      document.getElementById("nazvykomp").value += nazvy + ", " ';     //pripise do inputu dalsi zaznam
   }  
 }   


diky za radu!

P.S: po provedeni -= mi to hodi misto retezce bez odectene hodnoty NaN
Chamurappi
Profil
Reaguji na rypara:
V kódech, které uvádíš, jsou špatně uvozovky, přebývá apostrof.
Nevím o žádném programovacím jazyku, který by podporoval odčítání řetězců. Chceš-li z řetězce odmazat posledních pár znaků, nedávno jsme si tu připomněli metodu slice.
rypar
Profil
no problem je v tom, ze ne vzdy to jsou posledni znaky, tedy muze se jednat o retezec jako treba "jabko, hruska, banan, svestka", ze ktereho potrebuju vymazat "hruska," - jedinne co vim je udaj "hruska," ulozeny v promenne VAR - tedy potrebuju neco jako "STRING -= VAR"
S JS jsem zacatecnik, hledal jsem na W3schools mezi vsemi string funkcemi, ale neprisla mi pro to vhodna zadna
Chamurappi
Profil
Reaguji na rypara:
To tě bude zajímat nejspíš metoda replace:
var novýŘetězec = původníŘetězec.replace(coVymazat, "");

hledal jsem na W3schools
To není moc spolehlivý zdroj informací.
rypar
Profil
Tak jeste do tretice. Kod uz by nemel obsahovat syntakticne chyby, NaN se nezobrazuje, ale z retezce to neodcita. Kde probuh porad delam chybu? :(

 function check(chbx,img,nazvy) {
 imgs=Array("img/kup.png","img/nekup.png");       
   if (document.getElementById(chbx).checked == true) {
    document.getElementById(chbx).checked = false; 
    document.getElementById(img).src=imgs[0];
    totalPrice -= parseInt(document.getElementsByName(chbx)[0].value);
    document.getElementById("totalprix").value = totalPrice;
    var stary = novy.replace(nazvy+', ', "");
    var stary = novy;
   }
   else {
    document.getElementById(chbx).checked = true;  
    document.getElementById(img).src=imgs[1];
    totalPrice += parseInt(document.getElementsByName(chbx)[0].value);
    document.getElementById("totalprix").value = totalPrice;
    var novy = document.getElementById("nazvykomp").value += nazvy + ', ';
   }  
 }
  

"To není moc spolehlivý zdroj informací."
Na jaky zdroj se tedy mohu spolehnout vice?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: