比较难的问题,所以我给的分也比较多:) 不用form,改用xmlhttp应该就简单多了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script language="javascript">var iStr = new Array(5)var strfuncton fire(){ str = form1.texta.valuestr = str.split(/\n/g)iStr[0] = str[0]+"\n"+str[1]iStr[1] = str[2]+"\n"+str[3]iStr[2] = str[4]+"\n"+str[5]iStr[3] = str[6]+"\n"+str[7]iStr[4] = str[8]+"\n"+str[9]sent(0)}var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")function sent(n){ xmlhttp.open("POST","test.asp",false) xmlhttp.setRequestHeader("ContentiType","application/x-www-form-urlencoded") xmlhttp.send("content="+iStr[n]) if (xmlhttp.readyState==4){ var infor = xmlhttp.responseText if (infor=="success"){ if(n!=iStr.length-1) sent(n+1) else alert('全部提交完毕!') }else{ sent(n) }}</script><form name="form1"><textarea name="texta"></textarea><input type="button" onclick="fire()"></form>***********************test.asp<%dim contentcontent = request.form("content")if content<>"" then '操作你的数据库…… if 操作成功 then response.write "success" else response.write "fail" end ifend if%> 既然让用户确定话,那么在sent操作里加个confirm就可以了confirm判断语句放在if(n!=iStr.length-1)条件里 如果不用confirm,那就用innerHTML来控制button按钮,把button放在<div>里,然后用div的innerHTML属性重写button,改语句也放在if(n!=iStr.length-1)条件里 to allforly(白衣胜血) 请给源码,谢谢! to allforly(白衣胜血) 按照你写的做了,报错:33行,也就是:<input type="button" onclick="fire()">缺少对象,怎么回事? javascript定义数组实现发送队列用xmlhttp..如果使用纯粹的javascript的循环实现,容易导致死锁(因为javascript实际的解释过程是由单个线程完成,无法等待同步事件)通过xmlhttp的事件回调处理发送状态的判断和队列的处理. <script language="javascript">var iStr = new Array(5)var strfuncton fire(){ str = form1.texta.valuestr = str.split(/\n/g)iStr[0] = str[0]+"\n"+str[1]iStr[1] = str[2]+"\n"+str[3]iStr[2] = str[4]+"\n"+str[5]iStr[3] = str[6]+"\n"+str[7]iStr[4] = str[8]+"\n"+str[9]sent(0)}var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")function sent(n){ xmlhttp.open("POST","test.asp",false) xmlhttp.setRequestHeader("ContentiType","application/x-www-form-urlencoded") xmlhttp.send("content="+iStr[n]) if (xmlhttp.readyState==4){ var infor = xmlhttp.responseText if (infor=="success"){ if(n!=iStr.length-1){ hint.innerHTML = '<input type="button" value="确定提交下一小数据么" onclick="sent('+n+1+')">' } else alert('全部提交完毕!') }else{ sent(n) } }//开始这里漏了个括号了:)}</script><form name="form1"><textarea name="texta"></textarea><div id="hint"><input type="button" onclick="fire()"></div></form>***********************test.asp<%dim contentcontent = request.form("content")if content<>"" then '操作你的数据库…… if 操作成功 then response.write "success" else response.write "fail" end ifend if%> to allforly(白衣胜血) 谢谢你的代码。可是错误依旧,还是:<div id="hint"><input type="button" onclick="fire()"></div>缺少对象,你在你的机器上试试好吗? <div id="hint"><input type="button" onclick="return fire();"></div> 果然进入了死循环,现在没问题了<script language="javascript">var iStr = new Array(5)var strfunction fire(){ str = form1.texta.valuestr = str.split(/\n/g)iStr[0] = str[0]+"\n"+str[1]iStr[1] = str[2]+"\n"+str[3]iStr[2] = str[4]+"\n"+str[5]iStr[3] = str[6]+"\n"+str[7]iStr[4] = str[8]+"\n"+str[9]sent(0)}var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")function sent(n){ xmlhttp.open("POST","http://localhost/test.asp",false) xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded") xmlhttp.send("content="+iStr[n]) if (xmlhttp.readyState==4){ var infor = xmlhttp.responseText if (infor=="success"){ if(n!=iStr.length-1){ hint.innerHTML = '<input type="button" value="确定提交下一条数据么" onclick="sent('+(n+1)+')">' } else alert('全部提交完毕!') }else{ hint.innerHTML = '<input type="button" value="数据提交失败,重新提交" onclick="sent('+n+')">' } }}</script><form name="form1"><textarea name="texta" cols="80" rows="10"></textarea><div id="hint"><input type="button" onclick="fire()" value="gogogo"></div></form> to abigfrog(☆★千年精灵★☆) 还是同样的错误! 这行 xmlhttp.send("content="+iStr[n]) 报错:指定资源下载失败。难道IE要装什么控件吗?? 我是IE6,另外我的test.asp就是response.write "success" 这一句。 http://www.formo.net/test.asp源代码+演示 第一个问题解决了,我把 xmlhttp.open("POST","http://localhost/test.asp",false)换成本机的IP就可以了,新的问题是:test.asp里就response.write "success"这一句,可是程序总是 "数据提交失败,重新提交"怎么回事?好象xmlhttp.responseText没有得到ASP程序的输出呢! 能不能把上次已经提交的数据或者从<textarea>里删除,或者其他颜色显示,总之标识出来。容易吗? 我提交到的ASP程序,就是test.asp在别人的机器上,我不知道其源码,所以,我设计成这样:提交时打开一新窗口,<form target=_blank>,在该窗口里调用别人的程序,然后人工看看程序的结果,如果是成功的提交的话,就在第一个窗口里继续提交,否则重新提交. http://www.formo.net/test.asp我在错误处理里加了条提示,你可以看到提交后的反馈 在别人的服务器上,你可以用indexof或者search函数获取对方页面里的唯一值来判断是否提交成功 xmlhttp返回的很多是乱码,你必须用二进制返回数据,然后解码才得到正确的字符,我加了解析二进制的函数bstr()在http://www.formo.net/test.asp xmlhttp返回的很多是乱码,你必须用二进制返回数据,然后解码才得到正确的字符,我加了解析二进制的函数bstr()在http://www.formo.net/test.asp xmlhttp返回的很多是乱码,你必须用二进制返回数据,然后解码才得到正确的字符,我加了解析二进制的函数bstr()在http://www.formo.net/test.asp 控制div显示字符数 无解了,哪个高手帮我弄弄。 在线等待!跪求关于有滚动条的DIV中背景图片滚动,子标签图片不跟随滚动的问题 Decimal(7,2)的正则表达式是什么? 淘宝的宝贝详情中,商品详情的自动检测悬浮框是怎么弄的? 高手来看这个莫名其妙的问题? ajax没有返回数据,急。 关于使用javascript打开数据集的问题--求助 在线等待,div 定位的问题. 求救孟版主:还是关于目录树的问题 var oXL = new ActiveXObject("Excel.Application")这句话有什么问题? 文件系统对象的问题
var iStr = new Array(5)
var str
functon fire(){
str = form1.texta.value
str = str.split(/\n/g)
iStr[0] = str[0]+"\n"+str[1]
iStr[1] = str[2]+"\n"+str[3]
iStr[2] = str[4]+"\n"+str[5]
iStr[3] = str[6]+"\n"+str[7]
iStr[4] = str[8]+"\n"+str[9]
sent(0)
}
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")function sent(n){
xmlhttp.open("POST","test.asp",false)
xmlhttp.setRequestHeader("ContentiType","application/x-www-form-urlencoded")
xmlhttp.send("content="+iStr[n])
if (xmlhttp.readyState==4){
var infor = xmlhttp.responseText
if (infor=="success"){
if(n!=iStr.length-1) sent(n+1)
else alert('全部提交完毕!')
}else{
sent(n)
}
}
</script>
<form name="form1">
<textarea name="texta"></textarea>
<input type="button" onclick="fire()">
</form>
***********************
test.asp
<%
dim content
content = request.form("content")
if content<>"" then
'操作你的数据库……
if 操作成功 then
response.write "success"
else
response.write "fail"
end if
end if
%>
confirm判断语句放在if(n!=iStr.length-1)条件里
请给源码,谢谢!
按照你写的做了,报错:
33行,也就是:<input type="button" onclick="fire()">缺少对象,
怎么回事?
用xmlhttp..
如果使用纯粹的javascript的循环实现,容易导致死锁(因为javascript实际的解释过程是由单个线程完成,无法等待同步事件)
通过xmlhttp的事件回调处理发送状态的判断和队列的处理.
var iStr = new Array(5)
var str
functon fire(){
str = form1.texta.value
str = str.split(/\n/g)
iStr[0] = str[0]+"\n"+str[1]
iStr[1] = str[2]+"\n"+str[3]
iStr[2] = str[4]+"\n"+str[5]
iStr[3] = str[6]+"\n"+str[7]
iStr[4] = str[8]+"\n"+str[9]
sent(0)
}
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")function sent(n){
xmlhttp.open("POST","test.asp",false)
xmlhttp.setRequestHeader("ContentiType","application/x-www-form-urlencoded")
xmlhttp.send("content="+iStr[n])
if (xmlhttp.readyState==4){
var infor = xmlhttp.responseText
if (infor=="success"){
if(n!=iStr.length-1){
hint.innerHTML = '<input type="button" value="确定提交下一小数据么" onclick="sent('+n+1+')">'
}
else alert('全部提交完毕!')
}else{
sent(n)
}
}//开始这里漏了个括号了:)
}
</script>
<form name="form1">
<textarea name="texta"></textarea>
<div id="hint"><input type="button" onclick="fire()"></div>
</form>
***********************
test.asp
<%
dim content
content = request.form("content")
if content<>"" then
'操作你的数据库……
if 操作成功 then
response.write "success"
else
response.write "fail"
end if
end if
%>
谢谢你的代码。可是错误依旧,还是:<div id="hint"><input type="button" onclick="fire()"></div>缺少对象,你在你的机器上试试好吗?
<script language="javascript">
var iStr = new Array(5)
var str
function fire(){
str = form1.texta.value
str = str.split(/\n/g)
iStr[0] = str[0]+"\n"+str[1]
iStr[1] = str[2]+"\n"+str[3]
iStr[2] = str[4]+"\n"+str[5]
iStr[3] = str[6]+"\n"+str[7]
iStr[4] = str[8]+"\n"+str[9]
sent(0)
}
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")function sent(n){
xmlhttp.open("POST","http://localhost/test.asp",false)
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
xmlhttp.send("content="+iStr[n])
if (xmlhttp.readyState==4){
var infor = xmlhttp.responseText
if (infor=="success"){
if(n!=iStr.length-1){
hint.innerHTML = '<input type="button" value="确定提交下一条数据么" onclick="sent('+(n+1)+')">'
}
else alert('全部提交完毕!')
}else{
hint.innerHTML = '<input type="button" value="数据提交失败,重新提交" onclick="sent('+n+')">'
}
}
}
</script>
<form name="form1">
<textarea name="texta" cols="80" rows="10"></textarea>
<div id="hint"><input type="button" onclick="fire()" value="gogogo"></div>
</form>
还是同样的错误!
难道IE要装什么控件吗??
源代码+演示
test.asp里就response.write "success"这一句,可是程序总是 "数据提交失败,重新提交"怎么回事?好象xmlhttp.responseText
没有得到ASP程序的输出呢!
提交时打开一新窗口,<form target=_blank>,在该窗口里调用别人的程序,然后人工看看程序的结果,如果是成功的提交的话,就在第一个窗口里继续提交,否则重新提交.
我在错误处理里加了条提示,你可以看到提交后的反馈