Tworzę formularz do przesłania w funkcji javascript. Oparłem funkcję na zdarzeniu onchange wybranego elementu. Wydarzenie działa dobrze w chrome i firefox, przetestowałem go, wywołuje funkcję. Ale problem jest; podczas gdy chrome przesyła formularz, firefox nie. Czy mógłbyś mi pomóc? Dzięki.Nie można przesłać formularza z Javascript na Firefox
JavaScript funkcja:
function getStatementDetails()
{
var stmtSelect = document.getElementById("statementSelect");
var selectedId = stmtSelect.options[stmtSelect.selectedIndex].value;
var stmtForm = document.createElement("form");
stmtForm.setAttribute('method', "post");
stmtForm.setAttribute('action', "mymiles-mystatement");
var stmtId = document.createElement("input");
stmtId.setAttribute('type', "hidden");
stmtId.setAttribute('name', "statementID");
stmtId.setAttribute('id', "statementID");
stmtId.setAttribute('value', selectedId);
stmtForm.appendChild(stmtId);
stmtForm.submit();
};
input select:
<select id="statementSelect" name="statementSelect" class="select-miles select-miles-medium spacing-right-10" onchange="getStatementDetails()">
Edit: Czytałem sugerowanego post i spróbowałem. Wciąż nie działa. Funkcja najnowszy stan:
function getStatementDetails()
{
var stmtSelect = document.getElementById("statementSelect");
var selectedId = stmtSelect.options[stmtSelect.selectedIndex].value;
var stmtForm = document.createElement("form");
stmtForm.setAttribute('method', "post");
stmtForm.setAttribute('action', "mymiles-mystatement");
var stmtId = document.createElement("input");
stmtId.setAttribute('type', "hidden");
stmtId.setAttribute('name', "statementID");
stmtId.setAttribute('id', "statementID");
stmtId.setAttribute('value', selectedId);
var stmtSbmt = document.createElement("input");
stmtSbmt.setAttribute('type', "submit");
stmtSbmt.setAttribute('name', "tryMe");
stmtSbmt.setAttribute('id', "tryMe");
stmtSbmt.setAttribute('value', "try submit");
stmtForm.appendChild(stmtId);
stmtForm.appendChild(stmtSbmt);
stmtForm.submit();
};
Wygląda na to, że jest poprawny kod, tak długo, że jest potrzebny, ale musi działać. Możesz nam powiedzieć, czy konsola zgłasza błąd? W firefox, ALT + F2 otwiera pasek superdeveloper i znajduje się w przycisku narzędzi, gdzie znajduje się inspektor, konsola itd. –
Może Firefox nie spłukuje zmian DOM w ramach tej samej metody JavaScript. Możesz spróbować czekać z Timeout lub używając jQuery – red13
Używanie jQuery to 2 linie kodu. Ale on pisze w czystym javascript, nie wiem dlaczego, ale ma swoje powody, myślę, że –