Hallo akuep,
ei verflixt, das ist ein Volltreffer aus dem Nerd-Sniper. 3 Punkte für Dich 😉
Warum? Diese Aufgabe schreit nach einer SVG Lösung, in der man Druck und Volumen per Schieber einstellen kann und den Punkt im Kategorienfeld angezeigt bekommt. Mann mann mann, eieieiei…
Rolf
Mit dem Nerd-Sniper verstehe ich nicht ganz.
Was das Skript betrifft, habe ich es grundsätzlich so belassen (ich gebe dir recht, dass das bestimmt eleganter geht z. B. mit "else". Aber ich habe nicht den so den Ehrgeiz das optimal programmtechnisch zu machen, ich muss das (auch nach Jahren) immer für mich nachvollziehbar machen können. Aber es hat ja bisher jahrelang funktioniert (und ich war stolz das weltweiter Pionier im Internet veröffentlicht zu haben). Trotzdem nochmals vielen Dank für deine Ratschläge.
Ich habe noch einmal daran gearbeitet und mit Grid-layout gearbeitet (war ganz schön mühsam bis man das einmal einigermaßen verstanden hat (ich arbeite sonst mit Elementor, da braucht man das nicht). Bis auf das endgültige layout habe ich das Formular neu erstellt, aber es funktioniert noch nicht (keine Reaktion beim Button auch nicht der Reset-Button funktioniert nicht. Es es dir keine so großen Umstände macht, würde ich mich freuen , wenn du noch einmal darüber schaust, ob du Fehler erkennst.
Hier das Script: (sorry ich habe gerade gesehen, dass in der Vorschau etwas durcheinander ist)
<html>
<script>
function categorie () {
'use strict';
const ps = parseFloat(formdia1.eingabe1.value);
const v = parseFloat(formdia1.eingabe2.value);
let psv = ps*v;
let Y = "No Category";
let Z = "No Cat.; Free module selection!";
let I = "Catategory I";
let II = "Category II";
let III = "Category III";
let IV = "Category IV";
let meld1 = "Das Druckgeraet ist aufgrund der eingegebenen Betriebsbedingungen (Druck, Volumen) keiner Kategorie zuzuordnen und braucht keinem Konformitaetsbewertungsverfahren unterzogen werden. Folglich darf das Druckgeraet auch nicht mit einem CE-Kennzeichen versehen sein. Das Druckgeraet muss jedoch in Uebereinstimmung mit der geltenden Ingenieurpraxis ausgelegt und hergestellt werden.";
let meld2 = "Das Druckgeraet liegt aufgrund des geringen Gefahrenpotentials (Druck PS ≤ 0,5 bar) nicht im Geltungsbereich der Druckgeraeterichtlinie!";
let meld3 = "Bitte tragen Sie in den beiden Feldern fuer Druck und Volumen Zahlenwerte ein (Schreibweise: Punkt statt Komma).";
let meld4 = "Das Druckgeraet muss die grundlegenden Anforderungen des Anhang I erfuellen und eine CE-Kennzeichnung tragen. Fuer das Konformitaetsbewertungsverfahren besteht die freie Modulauswahl. Siehe hierzu die Leitlinie A-05";
if (ps <= 0.5){
alert(meld2);}
if (ps > 200 && v > 0.0001 && v <= 0.1){
alert(meld4);
formdia1.ausgabe.value = Z;}
if ((ps > 0.5 && ps <= 200 && v > 0.0001 && v <= 1) || (ps > 0.5 && v > 1 && psv <= 25)){
alert(meld1);
formdia1.ausgabe.value = Y;}
if (ps > 0.5 && v > 1 && psv > 25 && psv <= 50){
formdia1.ausgabe.value = I;}
if (ps > 0.5 && v > 1 && psv > 25 && psv <= 50 && formdia1.option.checked){
formdia1.ausgabe.value = III;}
if (ps > 0.5 && v > 1 && psv > 50 && psv <= 200 ){
formdia1.ausgabe.value = II;}
if (ps > 0.5 && v > 1 && psv > 50 && psv <= 200 && formdia1.option.checked){
formdia1.ausgabe.value = III;}
if ((ps > 0.5 && v > 1 && psv > 200 && psv <= 1000) || (v <= 1 && v > 0.1 && ps > 200 && ps <= 1000)){
formdia1.ausgabe.value = III;}
if ((ps > 0.5 && ps <= 1000 && psv > 1000) || ps > 1000){
formdia1.ausgabe.value = IV;}
if (ps=="" || v=="" || isNaN(psv)==true){
alert(meld3);}
}
</script>
<form name="formdia1" action="">
<div class="container" >
<div class="elem1">
<h2> PED Category Calculator</h2>
<p class="table-nor-cent">Pressure Equipment Directive (PED) 2014/68/EU</p>
<p class="table-nor-cent">Annex II Table 1</p>
</div>
<div class="elem2">
<p class="table-nor-right ">Type of Pressure Equipment:<br></p>
<p class="table-nor-right ">Fluid:</p>
<p class="table-nor-right ">Fluid Group:</p>
</div>
<div class="elem3">
<p class="table-nor-left"><b>Pressure Vessel</b></p>
<p class="table-nor-left"><b>Gas</b></p>
<p class="table-nor-left"><b>1 </b>(Hazardous Fluids)</p>
</div>
<div class="elem4">
<p><br><b>Gas</b>: Means all gases, vapours and liquids with a vapour pressure > 0,5 bar gauge at maximum allowable temperature;
<p>Vessels intended to contain an unstable gas and falling within categories I or II on the basis of table 1 shall be classified in category III.</p>
</div>
<div class="elem5">
<p class="table-nor-right"><b>Max. allowable Pressure</b></p>
</div>
<div class="elem6">
<p class="table-nor-cent"> PS</p>
</div>
<div class="elem7">
<p class="table-nor-left"><input type="number" name="eingabe1" size="8" value="" id="eingabe1"><label> [ bar ]</label></p>
</div>
<div class="elem8">
<p class="table-nor-right"><b>Volume<br></b></p>
</div>
<div class="elem9">
<p class="table-nor-cent">V</p>
</div>
<div class="elem10">
<p class="table-nor-left"><input type="number" name="eingabe2" size="8" >
[ Litre ] </p>
</div>
<div class="elem11">
<input form="formdia1" type="reset" value="RESET">
</div>
<div class="elem12">
<p><input type="checkbox" value="eins" name="option"><label> Fluid is a instable gas</label>
</div>
<div class="elem13">
<p class="table-nor-right"><b>Category:</b></p>
</div>
<div class="elem15">
<input type="button" size="24" name="berechnen" onClick="categorie ()" value="Calculate">
</div>
<div class="elem14">
<input id="out" type="text" name="ausgabe" size="24" readonly>
</div>
<div class="elem16">
<p>Special notes</p>
</div>
</div>
</form>
</html>