Allerdings ist es dann möglich beide Fragen zu beantworten (eine ausgefüllte Texteingabe wird nicht automatisch gelöscht, wenn "weiß nicht" angeklickt wird und andersrum).
Ja, das ist korrekt. Die einfachste Lösung besteht darin, das zu erlauben und - in den wenigen Fällen, wo die Befragten offensichtlich etwas widersprüchliches angeben möchten - es in der Auswertung zu bereinigen.
Die anspruchsvollere Lösung dafür besteht darin, dass sie das "Weiß nicht" Auswahlfeld mittels JavaScript mit jedem einzelnen Texteingabefeld koppeln. Der JavaScript-Code zur Koppelung eines Auswahlfelds AF01_01 mit einem Texteingabefeld TX01_01 könnte etwa wie folgt aussehen.
document.getElementById("AF01_01").onchange = function() {
var input = document.getElementById("TX01_01");
if (this.checked) {
this.valCache = input.value;
input.value = "";
} else if (this.valCache) {
input.value = this.valCache;
}
};
document.getElementById("TX01_01").onkeyup = function() {
var dk = document.getElementById("AF01_01");
if ((this.value != "") && (dk.checked)) {
dk.checked = false;
}
};
Das ganze ist deshalb ein wenig ausführlicher, weil man ja verhindern möchte, dass Daten verloren gehen - oder anders gesagt: Wenn man das "keine Angabe" Feld kurz anklickt und wieder deaktiviert, soll im Texteingabefeld wieder die Antwort von vorher stehen. Darum kümmert sich das valCache
im Code.
Um diesen Code auf mehrere Eingabefelder auszurollen wäre die Kapselung in eine JavaScript-Klasse empfehlenswert. Wenn es wenige Eingabefelder sind, kann man es aber auch für jedes einzeln wiederholen.