html一个页面有多个form,如何用js分别提交这些form

html-css0164

html一个页面有多个form,如何用js分别提交这些form,第1张

多个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")