Ich sehe da zwei Probleme:

  1. setAttribute() ist meines Erachtens nicht notwendig.
    Code:
    document.getElementById('bild').value = "wert";
    .. sollte außreichen.
  2. Da bei dem input-Element Name und ID identisch sind, wird das ganze in Opera und dem Internet Explorer nicht funktionieren.
    Opera bis 9.2 (oder 9.5, aber nicht mehr in 10) macht den selben Fehler wie der Internet Explorer und sammelt mit getElementById() auch Elemente auf, die den angegebenen Wert als Namen tragen (böser Bug). Wenn ich mich richtig erinnere gibt die Funktion gar nichts zurück, wenn Name und ID eines Elements identisch sind.