Forum
Tipps
News
Menu-Icon

Größenvergleich in Javascript

Guude,

ich bin grade an einem Script dran, das zwei Größen vergleichen soll.
Es gibt zwei Eingabefelder, in einem "hidden" Inputfeld ist eine statische Größe eingetragen und in das andere kann der User eine Zahl schreiben.

Wenn er das macht, dann soll ein Javascript im Hintergrund laufen und überprüfen ob die eingegebene Zahl Größer ist als die in dem Inputfeld. Wenn sie größer ist, dann sollte eigentlich die Zahl im versteckten Feld eingetragen werden. Nur funktioniert das da nur bei Zahlen unter 1000, wenn man 1000 (oder höher) eingibt, passiert nichts ?

<script type="text/javascript">
function 
show()
{
	
	
	

  var 
choose document.handel.ressource[document.handel.ressource.selectedIndex].value;
	
	
	

  if(
choosen != "")
  {
  
document.getElementById(&#39;maximum&#39;).innerHTML = &#39;Max.: &#39; + document.getElementById(&#39;max&#39; + choose).value + &#39;t&#39;;
	
	
	
	

  if(
document.getElementById(&#39;ress&#39;).value > document.getElementById(&#39;max&#39; + choose).value)
  
{
    
document.getElementById(&#39;ress&#39;).value = document.getElementById(&#39;max&#39; + choose).value;
  
}
  }
	
	
	

 }
</script>
	
	
	

	

<form action="handel.php?id=<?=session_id();?>" method="POST" name="handel">
	

<b><u>Hier mit dem System handeln</u></b><br><br>
	

<table cellpadding="4" cellspacing="4" border="0" style="width: 400px">
<tr align="center">
  <td>
  <select name="ressource" onmouseout="javascript:show()">
    <option value=""></option>
    <option value="m" onmouseover="javascript:show()">Metall</option>
    <option value="e" onmouseover="javascript:show()">Erdöl</option>
    <option value="k" onmouseover="javascript:show()">Kunststoff</option>
    <option value="t" onmouseover="javascript:show()">Treibstoff</option>
  </select>
  </td>
  <td><input type="text" name="ressourcen" onmouseout="javascript:show()" onfocus="javascript:show()" id="ress"> <small><span id="maximum"></span></small></td>
</tr>
</table>
	

  <input type="hidden" id="maxm" name="maxm" value="<?=$einheiten_daten[0];?>">
  <input type="hidden" id="maxe" name="maxe" value="<?=$einheiten_daten[1];?>">
  <input type="hidden" id="maxk" name="maxk" value="<?=$einheiten_daten[2];?>">
  <input type="hidden" id="maxt" name="maxt" value="<?=$einheiten_daten[3];?>">
	

	

</form>

Antworten zu Größenvergleich in Javascript:

Hi Lukas!

Also ich hab ihn noch ned ausprobiert, aber was mir sofort auffällt:

var choose = document.handel.ressource[document.handel.ressource.selectedIndex].value;


  if(choosen != "")

die Variable soll choose heißen oder?

Werd mir das ganze noch mal im ganzen anschauen und dir dann schrieben.

MFG
BWA

Also!

<html>
<body>
<script type="text/javascript">
function show()
{

  var choose = document.handel.ressource[document.handel.ressource.selectedIndex].value;
  if(choose != "")
  {
  document.getElementById('maximum').innerHTML = 'Max.: ' + document.getElementById('max' + choose).value + 't';
  if(parseInt(document.getElementById('ress').value) > parseInt(document.getElementById('max' + choose).value))
  {
  document.getElementById('ress').value = document.getElementById('max' + choose).value;
  }
  }
 }
</script>
<form action="handel.php?id=<?=session_id();?>" method="POST" name="handel">

<b><u>Hier mit dem System handeln</u></b><br><br>

<table cellpadding="4" cellspacing="4" border="0" style="width: 400px">
<tr align="center">
  <td>
  <select name="ressource" onchange="javascript:show()">
    <option value=""></option>
    <option value="m" onmouseover="javascript:show()">Metall</option>
    <option value="e" onmouseover="javascript:show()">Erdöl</option>
    <option value="k" onmouseover="javascript:show()">Kunststoff</option>
    <option value="t" onmouseover="javascript:show()">Treibstoff</option>
  </select>
  </td>
  <td><input type="text" name="ressourcen" onchange="javascript:show()" id="ress"><small><span id="maximum"></span></small></td>
</tr>
</table>

  <input type="hidden" id="maxm" name="maxm" value="<?=$einheiten_daten[0];?>">
  <input type="hidden" id="maxe" name="maxe" value="<?=$einheiten_daten[1];?>">
  <input type="hidden" id="maxk" name="maxk" value="<?=$einheiten_daten[2];?>">
  <input type="hidden" id="maxt" name="maxt" value="<?=$einheiten_daten[3];?>">

</form>
</body>
</html>

1. Wie schon gesagt der Fehler mit choose.
2. Die wahl deiner Event Listener, die beste Möglichkeit bei Formularkompnenten ist onChange.
3. Man glaubt zwar das es funktioniert, aber es geht leider nicht immer dass man texte mit > oder < vergleichen kann, da muss dann schon ein convert zu integer her, sonst überprüft er nur die Länge der Eingabe.

So dürfte es eingentlich funktionieren, wenn die php teile, die ich zum testen entfernt hab richtig arbeiten.

Naja viel Spaß noch

MFG
BWA

PS: Was soll das werden? So ne art Ogame oder Galaxy Quest?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Bin ja schon ein bisschen eingewöhnt mit unterschiedlichen Datentypen, aber ich arbeite ja größtenteils mit PHP, wo man nicht unbedingt den Unterschied zwischen Text und Zahlen machen muss, da dachte ich, das geht bei Javascript auch..

Naja, scheint wohl doch eher Ähnlichkeit mit C zu haben als mit PHP...

Ja, das wird so was in der Art, aber es spielt nicht im Weltraum sondern auf der "Erde", bzw. einem erdähnlichen Planeten. Ich wollte eigentlich keine Schleichwerbung machen, aber kannst ja mal hier schaun (der größte Teil ist schon funktionsfähig, registrieren geht auch schon):

http://prexador.derolleschwoebel.de

Ist immernoch eine Alphaversion, es wird auch kein Passwort verschickt sondern gleich ins Passwortfeld eingetragen, also ist es egal, was fürne email man bei der Registrierung angibt, nur zur Info. Soll echt keine Schleichwerbung sein, dafür ist das Spiel noch viel zu unreif ;).

Zitat
Die wahl deiner Event Listener, die beste Möglichkeit bei Formularkompnenten ist onChange.
onchange hatte ich auch benutzt, aber da wird ja das Script erst ausgeführt, wenn man das Formularfeld wieder "verlässt", mit onmouseout muss man nur mit der Maus drüberfahren.. Naja, da beim Abschicken des Formulars ja eh nochmal alles mit PHP überprüft wird, wird das da noch keinen großen Unterschied machen..[/font]
« Letzte Änderung: 19.08.06, 15:12:41 von Der olle Schwoebel »

Ok für deine Zwecke gibt es auch andere Methoden den mit on mouse out wird das limit nicht gesetzt wenn ich zum beispiel mit tab in feld reingehe und nicht mit der maus.

Also meine Lösung:

bei Select würd ich onChange lassen, da sofort was ausgewählt wird sobald du den Typ änderst.

Beim Input Feld würd ich jedoch auf onKeyUp gehen, da der script nach jedem eingegeben zeichen aufgerufen wird.

MFG
BWA

PS: Schaut schon mal nicht schlecht, respekt!
Wenn du was brauchst schreib mir halt meine Mail müsstes eh noch haben.
PPS: Wenn du den Style über eine Externe datei einbindest, ersparts du dir 1,55kb pro übertragung.

« Letzte Änderung: 19.08.06, 21:49:50 von BWA »

« ZufallsbilderAttribute (CHMOD) für lokale Dateien ändern »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
AppleScript
AppleScript ist eine Programmiersprache von Apple für Skripte und Programme auf Systemebene. Im Gegensatz zu den Unix-Shellscripts, die seit OS X ebenfalls mögl...

Javascript
JavaScript ist eine weit verbreitete Skriptsprache, die ursprünglich von Netscape für das DOM-Scripting für Webseiten entwickelt wurde. Sie hat sich seitde...

PostScript
PostScript ist eine Programmiersprache zur Beschreibung von grafischen Objekten und Schriftzeichen zur Übertragung vom Computer zum Drucker oder Laserbelichter. Gene...