通常form.submit()
、仕事submitという名前の入力がある場合、javascriptでフォームを送信するにはどうすればよいですか?
しかしsubmit
という名前の入力があるかどう、
form.submit
は非常に入力されますと、あなたは上記のコードでフォームを送信することはできません。します
この場合、フォームを送信する方法はありますか(入力の名前を変更しない場合)?
通常form.submit()
、仕事submitという名前の入力がある場合、javascriptでフォームを送信するにはどうすればよいですか?
しかしsubmit
という名前の入力があるかどう、
form.submit
は非常に入力されますと、あなたは上記のコードでフォームを送信することはできません。します
この場合、フォームを送信する方法はありますか(入力の名前を変更しない場合)?
submitメソッドを別のフォームから呼び出し、this
をcall
またはapply
とハックすることができます。
document.createElement('form').submit.call(myForm);
...しかしIE6では動作しません。
入力の名前をsubmit以外に変更する方が安全です。
"submit"という単語は予約語なので、type=submit
要素以外の入力要素では使用できません。
しかし、常にルールを破る方法があります。 AJAXを使用してPOSTリクエストを実行すると、任意の名前を使用できます。 入力要素の名前は必要ありません。idだけです。 実際には、入力要素だけのフォームは必要ありません。
<html>
<head>
<script type="text/javascript">
function ajaxRequest()
{
var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]
if(window.ActiveXObject)
{
for(var i=0; i<activexmodes.length; i++)
{
try{return new ActiveXObject(activexmodes[i])}
catch(e){}
}
}
else if(window.XMLHttpRequest) // if Mozilla, Safari etc
return new XMLHttpRequest()
else
return false
}
function myfunc()
{
var mypostrequest=new ajaxRequest()
mypostrequest.onreadystatechange=function()
{
if(mypostrequest.readyState==4)
{
if(mypostrequest.status==200 || window.location.href.indexOf("http")==-1)
{
document.getElementById("result").innerHTML=mypostrequest.responseText
}
}
}
var hiddenValue=encodeURIComponent(document.getElementById("submit").value)
var parameters="submit="+hiddenValue
mypostrequest.open("POST", "go2.php", true)
mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
mypostrequest.send(parameters)
}
window.onload = myfunc;
</script>
</head>
<body>
<div id="result"></div>
<input type='hidden' id='submit' value='1'>
</body>
</html>
送信ボタンには.click()関数を使用できます。送信ボタンがない場合は、最初にDOMに挿入する必要があります。
このよう:
document.getElementById("yourButton").click()
それはあまりにもIE6で動作させるための方法があります:
をまたは、送信ボタンを持っている場合は? –
Hmm。フォームがDOMに追加されるとうまくいくのでしょうか? – kirilloid
+1それを行うには素敵なトリック。 – Sarfraz