Formular "display:none/block" Input Feld abfrage?

vodka

Mitglied
Hallo,

Ich habe eine Javascript funktion um ein Input Feld ein/auszublenden sobald in einer Dropdownbox eine bestimmte Option gewählt wird.

Das Java Script sieht so aus:
Code:
<script type="text/javascript">
function meine_funktion(gewaehlt) {
if (gewaehlt == "Shipment using my FedExnummer. Additional Cost: 0.00 CHF." || gewaehlt == "Shipment without customer number, FedEx only. Cost: 120.00 CHF.") {
document.formular.ma5380billing_fedex.style.display = "";
document.getElementById('fedex').style.display = "";
} else {
document.formular.ma5380billing_fedex.style.display = "none";
document.getElementById('fedex').style.display = "none";

}


}
</script>


Und das Feld sieht dann so aus:
Code:
<div class="feld"><label id="fedex">{$Orders->Lang('fedex')}:</label> {$input_billing_fedex}</div>

Jetzt brauch ich aber noch dazu eine Abfrage wenn das Feld angezeigt wird also "display:block" ist das man etwas eingeben muss sonst sollte eine Fehlermeldung erscheinen das man nichts im Feld eingetragen hat, aber wen das Feld auf "display:none" ist weil man in der Dropdownbox etwas andere ausgewählt hat sollte diese Abfrage natuerlich nicht staht finden.

Nur wie setz ich dies um.

Danke im vorraus für eure Hilfe.
 
Hi,

teste in einer separaten Funktion ob das Testfeld sichtbar ist. Ist das der Fall, muss es auch einen Wert enthalten (value!="").

Beispiel:
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
function meine_funktion(gewaehlt) {
  if (gewaehlt == "Shipment using my FedExnummer. Additional Cost: 0.00 CHF." || gewaehlt == "Shipment without customer number, FedEx only. Cost: 120.00 CHF.") {
    document.formular.ma5380billing_fedex.style.display = "";
    document.getElementById('fedex').style.display = "";
  } else {
    document.formular.ma5380billing_fedex.style.display = "none";
    document.getElementById('fedex').style.display = "none";
  }
}

function getStyle(oElem, strStyle){
  return (window.getComputedStyle)
           ? window.getComputedStyle(oElem, null)['display']
           : oElem.currentStyle['display'];
}

function testIt(oElem){
  if(getStyle(oElem, 'display') != 'none'){
    if(document.formular.ma5380billing_fedex.value == ""){
      alert('Bitte einen Wert eingeben');
      return false;
    }
  }

  return true;
}
//-->
</script>
</head>
<form name="formular">
  <select name="gewaehlt" onchange="meine_funktion(this.options[this.selectedIndex].value);">
    <option>- bitte wählen -</option>
    <option value="Shipment using my FedExnummer. Additional Cost: 0.00 CHF.">Shipment using my FedExnummer. Additional Cost: 0.00 CHF.</option>
    <option value="Shipment without customer number, FedEx only. Cost: 120.00 CHF.">Shipment without customer number, FedEx only. Cost: 120.00 CHF.</option>
  </select>
  <div class="feld"><label id="fedex" style="display: none;">fedex: </label><input type="text" style="display: none;" name="ma5380billing_fedex" value=""></div>
  <button onclick="alert(testIt(document.getElementById('fedex')))">testIt</button>
</form>
</body>
</html>
Desweiteren wäre es hilfreich, wenn du demnächst in deinen Codefragmenten den geparsten HTML-Code posten würdest. Denn sonst ist es immer recht aufwendig das Problem nachzustellen.

Ciao
Quaese
 
Zurück