Frage

Ich habe eine Form, die ich derzeit mit einer JavaScript -Funktionalität aufzählte, und poste sie dann mit jQuery .ajax () in eine MVC -Controller -Aktion. Ich habe einige Fragen zu meinen Optionen, wenn ich eine traditionelle (no-javascript) Unterstützung für die Veröffentlichung dieses Formulars hinzufügen wollte.

1) Das Ding ist, dass ich einige Daten habe, die nicht in Feldern sind, sondern nur Text in Divs. Da ich gerade mit AJAX poste, kann ich den Inhalt dieser Divs durch ihre IDs vor dem Posten erhalten und in die Post einbeziehen. Ich gehe davon aus, dass diese Informationen in einem traditionellen Beitrag fehlen werden.

Eine Idee ist es, eine zu machen <input> für diese Divs auch aber verstecken Sie es auf Seite. Und verwenden Sie diese dann in Post.

2) Kann ich das Formular vollständig loswerden, wenn ich mich nur für einen Ajax -Beitrag entscheide?

3) Welches Format empfehlen Sie, wenn ich bei Ajax Post bleibe, für die Veröffentlichung von Werten zu verwenden? JSON, Comma-Delimited (problematisch für komplexe Daten), etwas anderes?

4) Unterstützen Sie normalerweise beide Wege? Denn wenn ich mir gerade meine Formulare betrachte, verwenden sie eine Tonne JQuery- und JQuery UI -Funktionalität, und diese wären ein Overkill ohne JavaScript. Wie wahrscheinlich ist es, dass Benutzer JS nicht aktiviert haben und es in Ordnung ist, nur "JS ist erforderlich" zu sagen?

Für diesen konkreten Fall baue ich ein Inhouse-On-Demand-Anwendung, das nicht weborientiert ist (zumindest noch nicht), daher habe ich die Möglichkeit, zu sagen, dass JS erforderlich ist.

ty

War es hilfreich?

Lösung

Wenn Sie die Route der Wartung einer praktikablen Website ohne JavaScript gehen möchten, würde ich vorschlagen, dass Sie zunächst eine Site zu der Arbeit ohne sie erstellen, und dann verwenden Sie JavaScript, um diese Schnittstelle mit dem Wünschen von JavaScript zu ändern. Dies würde mit allen Eingaben beginnen, die in enthalten sind input Elemente und ersetzen Sie diese Elemente mit JavaScript durch Ihre div Elemente - oder realistischer, das entfernen die inputs und das bereits bestehende Zeigen div Elemente.

Ich sehe keine Notwendigkeit, das Formular auch bei der Verwendung von AJAX loszuwerden, obwohl es technisch gesehen keinen Grund gibt, es zu haben. Eine Sache, die ich jedoch gerne mache, ist, das Formular zu behalten und dann meine Sent -Methode die Aktion aus dem abzurufen form Tag, damit ich es nicht direkt im JavaScript codieren muss. Sie können feststellen, dass dies das Teilen von JavaScript zwischen Ihren verschiedenen Formen erleichtert.

Ich serielle immer, um Parameter anzufordern, genau wie das Formular normalerweise. Der einfachste Weg, dies zu tun, ist die JQuery serialize Methode, aber das funktioniert nur auf den Eingaben. Sie können auch einen Hash (Schlüsselwertpaare in einem Objekt) konstruieren und dies als Datenparameter für Ihr AJAX angeben. Es wird automatisch serialisiert, um Parameter anzufordern. Wenn Sie etwas anderes verwenden, müssen Sie mithilfe Ihres eigenen Codes und nicht den Modellbindungscode in MVC die Deserialisierung der Deserialisierung erfordern.

Für öffentlich ausgerichtete Web-Apps versuche ich, die Schnittstelle sowohl für JavaScript-fähige als auch für abgeschlossene Browser zu halten. Nicht-JavaScript-Browser erhalten jedoch manchmal keinen Zugriff auf bestimmte Funktionen. Für interne Apps würde ich JavaScript wohl fühlen, da Sie (oder jemand in Ihrem Unternehmen) mehr Kontrolle darüber haben.

Andere Tipps

Vielen Dank für den Rat von Thomas, hier Code, um die Mauskoordinate unter Cursor anzuzeigen: generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top