J'utilise JavaScript pour soumettre un formulaire que je fais de toutes pièces. Le code ci-dessous fonctionne dans Chrome, mais pas dans Firefox ou IE. Comment puis-je créer et soumettre un formulaire et le faire fonctionner dans tous les navigateurs?Comment créer et soumettre un formulaire qui fonctionne dans tous les navigateurs modernes?
function someFunction(){
var SomeForm = document.createElement("form");
addInputFieldToForm("SpecialName_SortField","UpdateDate",SomeForm);
addInputFieldToForm("SpecialName_SortOrder","false",SomeForm);
addInputFieldToForm("Operation","Search",SomeForm);
SomeForm.action = "<%=link("direct", "WorkspaceDisplay") %>"; // assume this URL is valid (it is).
SomeForm.method = "post";
SomeForm.target = "_top";
SomeForm.submit();
}
//EDIT: Added this function to the question just so there's less mystery (not because it matters, really)
function addInputFieldToForm(elementName, elementValue, theForm) {
var inputElement = document.createElement("input");
inputElement.name = elementName;
inputElement.value = elementValue;
inputElement.id = elementName;
theForm.appendChild(inputElement);
}
Que fait "addInputFieldToForm"? Ce serait probablement le code d'intérêt. Ce que vous essayez de faire est assez commun et non sensible au navigateur, ou du moins il ne devrait pas l'être. – Pointy
utilisez-vous un framework js? vous devriez si vous voulez créer un formulaire compatible avec tous les navigateurs. de toute façon, qu'est-ce qui ne fonctionne pas exactement? pouvez-vous fournir des messages d'erreur de firebug? – maialithar
La partie "ne fonctionne pas" est juste que le formulaire ne publie pas. Les journaux du serveur n'ont pas bougé. Le JavaScript était apparemment en cours d'exécution, mais "SomeForm.sumbit();" n'a pas soumis le formulaire. Le problème a été abordé dans la réponse de Rob W, ci-dessous. – Dale