注册 登录
编程论坛 ASP技术论坛

求助:多个复选框取值问题

cherishlin 发布于 2008-11-04 11:32, 2873 次点击
在newdoc.asp中有project 下拉框,然后根据project下拉框动态生成多个复选框。为了实现局部刷新,我把从数据表中读数据动态生成复选框放到postnew.asp中,我想获得选中复选框的value然后存进数据表。

我的思想是动态生成复选框之后放一个文本框,把选中的复选框里的value值存到文本框里。在postnew.asp文件中给每个动态生成的复选框加一个onclick事件,但是所调用的函数放在newdoc.asp中,因为我刚学ASP,不知道这样子做可不可以,我没有调试成功,还请高手帮忙。谢谢!
3 回复
#2
yms1232008-11-04 12:16
如果是frame或iframe的话可以用javascript跨框架取值
考虑下面的代码
MainFrame.htm
<html>
<head>
<title>javascript跨框架取值</title>
<script language="javascript">
function ShowFrameTxt(0
{
   var FrameTxt=TxtFrame.Txt.value;//取出框架名为TxtFrame中名为Txt文本框的值
   alert(FrameTxt);
}
</script>
</head>
<body>
<input type="button" value="显示框架内文本框的值" onClick="ShowFrameTxt();" >
<iframe id="TxtFrame" src="FramePage.htm" width="500" height="600" />
</body>
</html>

FramePage.htm
<html>
<head>
<title>javascript跨框架取值</title>
</head>
<body>
<input type="text" name="Txt" value="框架内文本框">
<textarea name="TxtAre" style="width:300px;height:200px">框架内文本区域</textarea>
<input type="checkbox" name="TstChk" value="框架内复选框" >
</body>
</html>

将上面两段HTML代码存成文件然后放在同一目录下浏览MainFrame.htm
P.S.:举一反三,思考一下既然能通过iframe的id得到Txt文本框的值,那么是否能通过TxtFrame.xxx得到这个框架内任意元素的数据。楼主可以通过这段代码自己思考一下如何在MainFrame.htm得到TstChk或TxtAre的value
#3
cherishlin2008-11-04 13:13
谢谢斑主的帮助!我没有用到框架。我还是不知道要怎么做。
<script type="text/javascript">
var XmlHttp=null;
function showtext(project)
{

XmlHttp=CreateXMLHttp();
if(XmlHttp)
{
XmlHttp.onreadystatechange=stateChanged;
var url="postnew.asp?project="+project;
XmlHttp.open("GET", url , true);
XmlHttp.send(null);
}

}
function CreateXMLHttp()
{
XmlHttp = false;
    try{   
        XmlHttp  = new XMLHttpRequest;
    }catch(e){
        try{
           XmlHttp =new ActiveXObject("MSXML2.XMLHTTP");
        }catch(e2){
            try{
                XmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
            }catch(e3){
                XmlHttp  = false;
            }
        }
    }
    return XmlHttp;
}
function stateChanged()
{
if (XmlHttp.readyState==4) //readyState==4,代表加载成功
{
document.getElementById("inser_1").innerHTML=XmlHttp.responseText;
}
else
{
document.getElementById("inser_1").innerHTML="Loading。。。。。";

}
}
</script>
我用的这种方法实现局部刷新,根据所选的project在postnew.asp中动态生成复选框。以前我把生成复选框都放在newdoc.asp中时,通过checkbox的onclick调用一个javascript函数可以把选取的复选框的value值存放文本框,但是现在动态复选框我放在了postnew.asp中,我不知道要怎么做才能实现。还请高手多多指教。
#4
cherishlin2008-11-04 15:53
请各位高手帮忙呀。这个问题已经困扰我好久了。
1