2016-10-04 14 views
1

.submit()を呼び出した後、提出していない、次 作成したフォームは、私は、フォームを作成して、などの場で提出呼び出す必要が

var form = document.createElement("form"); 
form.name="openGame"; 
form.method = "post"; 
form.action="/public/games"; 
var lat = document.createElement("input"); 
lat.name="latitude"; 
lat.value=$("#city[name=latitude]").val() || " "; 
lat.type="hidden"; 
form.appendChild(lat); 
var lng = document.createElement("input"); 
lng.name="longitude"; 
lng.value=$("#city[name=longitude]").val() || " "; 
lng.type="hidden"; 
form.appendChild(lng); 
var address = document.createElement("input"); 
address.name="city"; 
address.value=$("#city[name=city]").val() || " " ; 
address.type="hidden"; 
form.appendChild(address); 
var game = document.createElement("input"); 
game.name="game"; 
game.value=id; 
game.type="hidden"; 
form.appendChild(game); 
form.submit(); 

(Chromeはなく、Firefoxの上で作業)が、フォームがあります実際には提出しません。エラーはなく、出力はコンソールにありません

答えて

2

あなたのフォームはDOMに追加されていないようです。

Firefoxで表示されないフォームは送信できません。

表示しない場合は、display: noneでDOMに追加してください。

別の方法として、XMLHttpRequestを手動で作成するか、jQueryで$ .postを作成する方法があります。

0

(Dan Mのおかげで)可能な解決策は、提出する前にフォームにDOMを追加することです。

var form = document.createElement("form"); 
    form.style = { 
     display : "none" 
    }; 
    form.name="openGame"; 
    form.method = "post"; 
    form.action="/public/games"; 
    var lat = document.createElement("input"); 
    lat.name="latitude"; 
    lat.value=$("#citta[name=latitude]").val() || " "; 
    lat.type="hidden"; 
    form.appendChild(lat); 
    var lng = document.createElement("input"); 
    lng.name="longitude"; 
    lng.value=$("#citta[name=longitude]").val() || " "; 
    lng.type="hidden"; 
    form.appendChild(lng); 
    var address = document.createElement("input"); 
    address.name="citta"; 
    address.value=$("#citta[name=citta]").val() || " " ; 
    address.type="hidden"; 
    form.appendChild(address); 
    var game = document.createElement("input"); 
    game.name="game"; 
    game.value=id; 
    game.type="hidden"; 
    form.appendChild(game); 
    $("#openGame").append(form); 
    form.submit(); 

<div id='openGame'></div> 
ようなHTMLページに要素を追加
関連する問題