当存在'这是一个名为submit的输入
How do I submit a form with javascript when there's an input named submit?
通常form.submit()
将工作,
但如果有一个名为submit
的输入,
form.submit
将是最重要的输入,您不能提交带有上述代码的表单。
那么,在这种情况下,有没有办法提交表单(如果我不更改输入的名称)?
您可以从另一个表单调用submit方法,并使用call
或apply
破解this
。
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中插入一个。
像这样:
var submitbutton = document.createElement('input');
submitbutton.type = "submit";
document.getElementById("yourForm").appendChild(submitbutton);
submitbutton.click();
或者,如果你有一个提交按钮:
document.getElementById("yourButton").click()
相关文章:
- 在带有参数列表的表单submit上调用一个方法
- 如何阻止一个Submit按钮运行Submit Click功能
- 只有最后一个文件是通过迭代形式.submit()操作下载的
- 你能从本地脚本在另一个站点上调用 submit() 吗?
- JavaScript 表单提交带有一个名为 submit 的字段
- this.form.submit() 选择,只发布一个选项
- 在jQuery.submit函数中更新并显示一个变量
- 当存在'这是一个名为submit的输入
- Submit是获取输入的最后一个值
- 如何创建一个输入类型'button'就像type='submit'
- 让我的button type="submit"打开另一个手风琴
- form.submit()到一个特定的DIV
- Javascript Post on Form Submit打开一个新窗口——如何找到URl
- ASP3单击Submit打开一个模态窗口
- Submit在js中不是一个函数
- 在.submit中发送一个额外的参数
- 角度'在其中一个文本字段上按enter键时,s ng-submit()指令不提交
- 为什么这个“点击禁用=true;this.form.submit();' 在一个按钮上工作,但不能在另一个按钮上工作
- Javascript 返回 false;不会取消另一个 .submit jQuery 调用的表单提交
- 在所有form.submit()之前执行一个函数