用javascript+ajax做的一个仿digg程序,多个form,同一个提交动作,苦于无法用javascript确定提交form的id,所以只能同一个动作复制了N遍,换了换动作的ID,很啰嗦。请指导一下,谢谢。动作:function OnCheckAvailability()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}oRequest.open("POST", "/action/digg.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailability;oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strUsername=" + document.form1.keycode.value);
}function UpdateCheckAvailability()
{
if(oRequest.readyState == 4)

if(oRequest.status == 200)
{
document.getElementById("Available1").innerHTML = oRequest.responseText;
document.getElementById("Upbut1").innerHTML = ("已完成");
}
else
{
document.getElementById("Available1").innerHTML = "A-Error";
document.getElementById("Upbut1").innerHTML = ("有错误");
}
}
}在页面里有11个digg项目,所以这个动作也复制了11遍... 我只有10分了,希望别嫌少啊...

解决方案 »

  1.   

    我也不明白,为什么要同一个动作多个form提交,出发点不对吧,顶一下
      

  2.   

    被楼主忽悠晕了JavaScript 本身就具有 OO ,怎么可能需要Copy那么多份相同代码呢?你每个触发事件把当前表单对象传进去就OK了啊
    function XXXX(objForm)
    {
       代码块;
    }调用:
    <form>
    XXXX(this.form)
    </form>或者:
    <form id="ABC"></form>
    XXXX(ABC)  这里ABC不用双引号扩起来,直接传DOM对象的ID,JavaScript直接操作对象。
      

  3.   

    这是全部代码:页面的form:由i来生成form1到form10的十个form<form name="form<%=i%>" id="form<%=i%>"><input type="hidden" name="keycode" value="<%=rs("softcode")%>" />
    <div id="l-con-left"><div id="digg-it"><span id="Available<%=i%>"><%=rs("ups")%></span></div>
    <div id="l-con-bot"><span id="Upbut<%=i%>"><a onClick="OnCheckAvailability<%=i%>();" style="CURSOR:hand">投一票</a></span></form>js中的动作:其中的【i】与上面的1到10个数字对应,以此类推:十个js相应的接收十个form发来的信息,然后更新function OnCheckAvailability【i】()
    {
    if(window.XMLHttpRequest)
    {
    oRequest = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
    oRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }oRequest.open("POST", "up-it.asp", true);
    oRequest.onreadystatechange = UpdateCheckAvailability【i】;oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    oRequest.send("strUsername=" + document.form【i】.keycode.value);
    }function UpdateCheckAvailability0()
    {
    if(oRequest.readyState == 4)

    if(oRequest.status == 200)
    {
    document.getElementById("Available【i】").innerHTML = oRequest.responseText;
    document.getElementById("Upbut【i】").innerHTML = ("已完成");
    }
    else
    {
    document.getElementById("Available【i】").innerHTML = "A-Error";
    document.getElementById("Upbut【i】").innerHTML = ("有错误");
    }
    }
    }我对js不熟悉,不知道更为科学简洁的方式如何写。