molily: Radiobutton abwählen/demarkieren/unchecken

Beitrag lesen

Hallo,

Schnellschuss meinerseits:

<html><head>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
<title>Radiotest</title>  
<script type="text/javascript">  
[code lang=javascript]window.onload = init;  
function init () {  
 var inputs = document.getElementsByTagName("input");  
 for (var i = 0, input; input = inputs[i]; i++) {  
  if (input.type != "radio")  
   continue;  
  input.onclick = click;  
 }  
}  
function click (e) {  
 if (typeof this.checkedStatus == "undefined")  
  this.checkedStatus = false;  
 if (this.checkedStatus) {  
  this.checked = false;  
  this.checkedStatus = false;  
  if (window.ChromeWindow)  
   return false;  
 } else {  
  if (window.lastCheckedRadio && window.lastCheckedRadio !== this) {  
   window.lastCheckedRadio.checkedStatus = false;  
  }  
  window.lastCheckedRadio = this;  
  this.checkedStatus = true;  
 }  
}

</script>
</head>
<body>
<form>
<p><input type="radio" name="radio" value="a"> a</p>
<p><input type="radio" name="radio" value="b"> b</p>
</form>
</body>
</html>[/code]

IE 6, Opera 9, Firefox 2.
Browsererkennung (ChromeWindow = Gecko-Browser) scheint mir notwendig.
Verwendung von ordentlichen label-Elementen funktioniert dabei natürlich nicht, da müsste man noch eine Verknüpfungslogik zwischen label und input einbauen, bis dahin werden nur Direktklicks auf die Radio-Buttons gewertet.

Daran weiterarbeiten will ich eigentlich nicht, produktiv einsetzen würde ich ein solches Script ebensowenig - man wird es wahrscheinlich nie robust und kompatibel kriegen. Solches JavaScript gehört eigentlich aus der Welt geschafft, weil es einem morgen um die Ohren fliegen kann. Dafür halte ich die Funktion für zu essentiell, als dass ich einem solchen Script vertrauen würde. Sowieso halte ich die Problemstellung für ein Nicht-Problem (bessere, hundertprozentig zuverlässige Lösung existiert bereits) und das Unternehmen daher für nutzlosen, in Hinsicht auf Funktionsfähigkeit aussichtslosen JavaScript-Einsatz.

Mathias