Ajax 、form、url到底什么关系啊
本帖最后由 showbo 于 2013-05-02 15:08:55 编辑 Ajax异步提交,这个我大概知道,就是在server发来响应之前这段时间无须傻等,可以继续执行用户其他操作。
但是网上还说有第二种提交方式:form表单提交。form提交与Ajax是并列的?之前看到过这种使用方法:
在
a.xsl
<?xml version = "1.0" encoding = "gb2312"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:template match = "/">
<script type = "text/javascript" language = "javascript" src = "A.js">
</script>
<form id = "form1" name ="form1" target = "FrmSubmit" onsubmit = "return OnSubApply(this)" method = "post">
<input type = "text" class = "textbox" id = "time1" style = "width:400"/>
<input type = "text" class = "textbox" id = "time2" style = "width:400"/>
<input name ="ApplyButton" value = "提交" id = "ApplyButton" type = "submit" class = "buttonX"/>
<input name ="CancleButton" value = "取消" id = "CancleButton" type = "button" class = "buttonX" onclick = "OnCancleButton()"/>
</form>
<xsl:call-template name = "xx">
</xsl:call-template>
<form id = "form1" name ="form1" onsubmit = "" method = "post">
<xsl:call-template name = "yy">
</xsl:call-template>
</form>
<iframe id = "TABchange" name = "TABchange" scrolling = "yes" src = "A.html">
</iframe>
</xsl:template>
function OnCancleButton()
{
return false;
}
function fuc1()
{
XXXXXXXXXXX;
}
function OnSubApply(this)
{
time01 = document.getElementById("time1").value;
time01 = document.getElementById("time1").value;
oRequest = new XmlRequest;
oRequest.add(TIME1, time01);
oRequest.add(TIME2, time02);
Frame.Ajax.send("/wcn/mco.x?", oRequest,fuc1, {bProcErroe: true});
}
[解决办法]
1,Frame.Ajax.send。。这个应该是ajax提交吧。。没见源代码不好判断
2,如果刷新了页面就不是ajax提交了,而是表单提交
不知道楼主的刷新是指出现了进度条还是整个页面转向了?
如果是出现进度条,那么是表单提交到了隐藏的iframe来实现无刷新,这样和普通的表单提交一样,只是指定了表单的target提交到iframe,不会刷新父页面,但是浏览器会出现进度条
整个页面刷新就是普通的表单提交了
3,url和href提交只能是get,参数放到url后面,如xxx.asp?un=xxx&pwd=xxxx...其他的
form表单可以通过指定method属性指定为get或者post提交,会加载action指定的url地址,浏览器会出现进度条【提交到iframe】或者刷新整个页面
ajax包含上面的get/post提交或者http允许的提交方法,delete上面之类的,只是不会刷新页面,但是有缺点就是无法执行返回的js代码,需要自己解析执行js代码
[解决办法]
function OnSubApply(this)
{
time01 = document.getElementById("time1").value;
time01 = document.getElementById("time1").value;
oRequest = new XmlRequest;
oRequest.add(TIME1, time01);
oRequest.add(TIME2, time02);
//这个矿建应该用的ajax发送的信息
Frame.Ajax.send("/wcn/mco.x?", oRequest,fuc1, {bProcErroe: true});
return false;//阻止表单提交
}