deel van een <option> verbergen <option>naam {verborgen achternaam}</option>

Status
Niet open voor verdere reacties.

remcovg

Gebruiker
Lid geworden
25 jun 2006
Berichten
205
Hey,

Ik zit met het volgende:
Ik heb een select met meerdere option value's in een bestaande site.
Deze is eens ontwikkeld bestaande uit standaard oscommerce modules.
Nu word er een variabele afgevangen die tussen de '()' haakjes staat. Deze word dan bij de prijs opgeteld.
dus stel je hebt de optie 'auto' en de tweede optie 'auto in het blauw(+300.00)' dan word er bij de tweede auto automatisch 300 euro bij het bedrag opgeteld door een javascript.

Nu is de wens dat het (+300.00) gedeelte niet meer zichtbaar is. dus altijd de () en de tekens die ertussen vallen. Het mag eventueel eenvoudig met styling wit worden gemaakt als iemand daar een oplossing voor heeft... aangezien je in een option veld geen html tags meer kwijt kan..

iemand?

Bvd.
 
Ik heb een ideetje, probeer het zo eens:

[JS]var dat = "DeAuto(+4000)";
dat = dat.substring(0, dat.indexOf('('));
alert(dat);[/JS]

Dan krijg je dit resultaat te zien:

h968q.png


Ik heb deze code als voorbeeld gebruikt, even snel :)

[JS]<html>
<head>
<script type="text/javascript">
var dat = "DeAuto(+4000)";
dat = dat.substring(0, dat.indexOf('('));
alert(dat);
</script>

</head>
</html>[/JS]

Hoop dat het iets is =)
 
Super dat je meedenkt en duidelijk plaatjes upload. Dat leest heel fijn!
Het punt is dat er later functies de variabele die tussen de '()' haakjes staan weer uitleest om de totaal prijs daarmee te bepalen. de waarde moet dus wel in het veld blijven maar niet zichtbaar zijn voor normale gebruikers.

met je substring split je de string in 2e en gebruik je deel 2 gewoonweg niet. Het liefst zou ik zoiets als dat van jou gebruiken en er dan een regel styling tussen zetten:

Code:
'de auto <span style="color:white;">(+200.00)</span>'
 
Probeer dit eens, kost wat werk maar hij doet het :)

WqDFO.png


Als je nu dus op de ''Doe het'' knop drukt zal hij laten zien wat hij toevoegt:

q4KMi.png


En dan staat de auto in de listbox (select ding);

cXQfZ.png


En als je het weer opvraagt zie je dit:

uw2Hp.png




De code:

[JS]<html>
<head>
<script type="text/javascript">

function Doe(welkeAuto)
{
var oud = welkeAuto;
var nieuw = oud.substring(oud.indexOf("("), oud.length);
oud = oud.substring(0, oud.indexOf("("));
alert(oud + "\r\n" + nieuw);

var optie = document.createElement('option');
optie.text = oud;
optie.value = nieuw;
document.getElementById("sel").options.add(optie);
}

function Get(welkeAuto)
{
var opties = document.getElementsByTagName('option');
for (var i = 0; i < opties.length; i++)
{
if (opties.text == welkeAuto)
{
alert(opties.text + opties.value);
break;
}
}
}
</script>

</head>

<body>
<select id="sel">
</select>

<input type="button" onClick="Doe('DeAuto(+3500)')" value="Doe het">
<input type="button" onClick="Get('DeAuto')" value="Vraag op">
</body>
</html>[/JS]

Beter? :)
 
Kan je het niet beter zo doen:
HTML:
<option value="300">DeAuto</option>
Dan laat je het script/de scripts het "value" attribuut gebruiken i.p.v. een tekst tussen haakjes.
 
bedankt! je hebt me ge�nspireerd om inderdaad in deze richting een oplossing te schrijven :cool:!

de value oplossing had heel mooi kunnen zijn als er niet een heleboel andere scripts afhankelijk waren van de value / de inhoud van de option tag.
nu bouw ik een array op met de gegevens van de meerprijs en deze lees ik later uit in de plaats het huidige prijs ophoog script..
ik haal op de hoeveelste option tag het is.. en dat object haal ik uit de array,,
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan