多个form,只要不嵌套,提交按钮应该就是提交被包含的那个form。而且html标准也不推荐将多个表单嵌套。你试试看。
如果用js,当然也可以,利用<form>的name属性就可以找到对应的form,比如:
<form name="form1" action="xxx">...
</form>
<form name="form2" action="yyyy">
...
</form>
提交这两个form时分别用:
document.form1.submit()和 document.form2.submit()就行。
ajax返回form表单 html js能执行的,可以利用纯js来提交:1、ajax返回如下form,用创建来模仿:
function post(url, params) {
var tempForm = document.createElement("form")
tempForm.action = url
tempForm.method = "post"
tempForm.style.display = "none"
for (var x in params) {
var opt = document.createElement("textarea")
opt.name = x
opt.value = params[x]
// alert(opt.name)
tempForm.appendChild(opt)
}
document.body.appendChild(tempForm)
tempForm.submit()
return tempForm
}
2、定义提交form的参数:
function postParamAndOpenWindow(urlAndQuery){
// 分割url和请求参数
var pos = urlAndQuery.indexOf('?')
var url = urlAndQuery.substring(0, pos)
var query = urlAndQuery.substring(pos + 1)
// 动态建立Form中的数据
var tempForm = document.getElementById('tmpForm')
tempForm.action = url
tempForm.method = "post"
var pairs = query.split("&")
for(var i = 0i <pairs.lengthi++) {
var pos = pairs[i].indexOf('=')
if (pos == -1) continue
var argname = pairs[i].substring(0, pos)
var value = pairs[i].substring(pos + 1)
var opt = document.createElement("textarea")
opt.name = argname
opt.value = value
tempForm.appendChild(opt)
}
tempForm.submitBtn.click()
return tempForm
}
3、在页面调用的方法:
<a href="#" onclick="postParamAndOpenWindow("http://www.xxx.com/login?username=xxx&password=yyy')">
存在问题两个:
1、在onclick中调用js不要使用javascript:前缀
2、代码不要换行。
我修改后的代码:
<input type="button" name="submit" value="查看密码和姓名" onclick="alert('姓名'+form1.textfield.value+'密码'+form1.textfield2.value)"/>
可以运行效果
第2段代码:
getElementById属于document对象的方法,而不是属于window对象,所以不可以省略对象。
正确写法:doument.getElementById("form1")