Heim > Fragen und Antworten > Hauptteil
Ich habe ein Formular auf einer Navigationsregisterkarte und verlinke es von einer anderen Navigationsregisterkarte aus. Ich verwende den folgenden Code, um von mehreren Seiten aus auf alle meine Navigationsregisterkarten zu verlinken.
const hash=window.location.hash; const bsTab = new bootstrap.Tab(hash); bsTab.show();
Es funktioniert, aber:
Wenn möglich, möchte ich den Hashtag nach der Weiterleitung von der URL entfernen. Das ist ein Problem, das ich mit diesem Teil von Javascript habe.
Eine andere ist: Um über Buttons auf mein Formular zu verlinken, habe ich mir folgende Lösung ausgedacht:
function redirectToForm() { window.location.href = "http://www.example.com/#nav- contact-me-tab"; localStorage.setItem("selectedOption", "2"); } const hash=window.location.hash; const bsTab = new bootstrap.Tab(hash); bsTab.show(); var selectedOption = localStorage.getItem("selectedOption"); document.getElementById("reason").value = selectedOption; localStorage.removeItem("selectedOption");
Auf den ersten Blick funktioniert das, aber wenn ich am Ende wieder auf das Formular verlinke, ist die Standardoption nicht mehr ausgewählt. In einigen Fällen sind keine Optionen ausgewählt. Ich möchte, dass das Formular immer die standardmäßig ausgewählte Option anzeigt (die standardmäßig „0“ ist, andernfalls wird sie deaktiviert), es sei denn, ich klicke auf meine Schaltfläche. Ich möchte diesen Wert nur dann auf Option 2 ändern, wenn auf meine Schaltfläche geklickt wird. Wenn ich von einem anderen Link zu meinem Formular weiterleite, möchte ich, dass der standardmäßig deaktivierte Wert angezeigt wird
Das ist mein Button:
<button id="gotoformselect2" onclick="redirectToForm()">Request References</button>
Vielleicht kann jemand, der mehr über Javascript weiß:
Ansonsten möchte ich, wenn ich auf ein Formular oder eine andere Navigationsregisterkarte verlinke, nur diesen Code verwenden:
const hash=window.location.hash; const bsTab = new bootstrap.Tab(hash); bsTab.show();
Wenn Sie helfen können, lassen Sie es mich bitte wissen! Dank im Voraus.
P粉0072885932024-03-23 09:03:22
function redirectToForm() { window.location.href = "http://www.example.com/#nav-contact-me-tab"; localStorage.setItem("selectedOption", "2"); } if (location.hash) { const hash = location.hash; const bsTab = new bootstrap.Tab(hash); bsTab.show(); history.replaceState('', null, location.origin+location.pathname); //replaces the hash } if (localStorage.getItem('selectedOption')) { const option = localStorage.getItem('selectedOption'); document.getElementById('reason').selectedIndex = option; localStorage.removeItem("selectedOption"); }