document.tiao.action="tiao_return.asp";见上句,第二次再按的时候,表单的Action已更新为一个网页地址,是普通的ACTION了。

解决方案 »

  1.   


    只需要在表彰提交后再还原设置就行了:<script language="javascript">
    <!--
    function tiao_check()
    {
    window.open('','投票','width=400,height=300');
    document.tiao.action="tiao_return.asp";
    document.tiao.target="投票";
    document.tiao.submit();
    document.tiao.action="javascript:tiao_check()";
    document.tiao.target=""; }
    -->
    </script>
      

  2.   


    正解就不见得,我只是发现他的问题而已。即当他点击一次表单后,打开了一个名为“投票”的窗口,此时
    表单域的Action被JS改成了“tiao_return.asp”,打开的目标窗口改成了为“投票”。接着他关闭了名称为“投票”的窗口,并第二次再按投票按钮,结果程序找不到“投票”窗口(已被他闭),于是程序就只好“_blank”了。
    不用写JS函数把表单域改来改去的,我认为。例如,楼主的表单域可以这样写的:
    <form action="tiao_return.asp" method="post" enctype="application/x-www-form-urlencoded" name="tiao" id="tiao" onsubmit="window.open('','投票','width=400,height=300');return true;" target="投票">
      

  3.   

    谢谢各位的解答(特别是qiqunet(无聊到在这里玩CSDN的干棍)),问题已解决。
    但我还有一个小问题没搞清楚:为什么一定要加这一句:document.tiao.target="";而且它的值只能为空,不能为其它的,不然就会提示说找不到对象.
      

  4.   


    document.tiao.target=""
    是让表单域的目标缺省,缺省目标的表单域其目标指向本身窗口,本身窗口是永远找得到的,所以不会有错。
    其它的窗口都不存在,所以document.tiao.target不能是其它的参数。
    由此我们可以看到表单程序的执行顺序了。    调试得比较多就不见得,在CSDN上,对于一个问题,如果你如果调试得比较多的话,你就几乎没有什么机会站到一楼上了。因为调试得比较多的话,说明你对这个问题不熟悉不了解,只能靠运气来解决了,所以说经验和观察能力是很重要的。
        看到一个问题,你应该首先会产生一定的解决思路和方法,再来测试自己的方法是否可行,如果可行的话就来发贴。当然,有时候有此问题是简单到根本不用测试就知道它可行的或不可行的。
        对于这个问题我在本机上调试过三次:第一次,看到问题后即发回贴,后来一调试,发觉仅改那一句还不行的。所以再看了一下程序,发觉target还得改掉,改完后测试了一下,这是第二次。第三次,我总觉得楼主写的提交到弹出窗口过程太复杂了,所以又改了一下<form>语句。
      

  5.   

    document.tiao.target=""
    是让表单域的目标缺省,缺省目标的表单域其目标指向本身窗口,本身窗口是永远找得到的,所以不会有错。