有两个文件
1个是mid.js
1个是a.aspx在a.aspx里有个button控件,<asp:Button ID="button1" runat="server" Text="取消"
onclick="button1_Click" />
我现在想在mid.js中的一个function里执行a.aspx的button1_click,请问要怎么写?
function ChangeText() {
var btn = document.getElementById(getClientId().Id1);//这里该怎么写才能在mid.js里获取到a.aspx
document.getElementById('btn').click();
//btn.value = "from extended js";
}
1个是mid.js
1个是a.aspx在a.aspx里有个button控件,<asp:Button ID="button1" runat="server" Text="取消"
onclick="button1_Click" />
我现在想在mid.js中的一个function里执行a.aspx的button1_click,请问要怎么写?
function ChangeText() {
var btn = document.getElementById(getClientId().Id1);//这里该怎么写才能在mid.js里获取到a.aspx
document.getElementById('btn').click();
//btn.value = "from extended js";
}
document.getElementById(btn).click(); //注意没引号
a.aspx里面要加上
<script>
var btn = "<%=button1.ClientID%>"
</script><script src="mid.js"></script>
我试过了,在mid.js里提示 btn未定义mid.js和a.aspx是两个独立的文件,只是在a.aspx里引入了mid.js.
a.aspx里的写法是这样的:
<script type="text/javascript">
var btn = "<%=button1.ClientID%>"
</script><script type ="text/javascript" src="../js/mid.js"></script>
你查看一下源文件,页面上存在ID=btn 的对象么?
就是这么做的。确保你的a.aspx里面有<asp:Button ID="button1" runat="server" Text="取消"
onclick="button1_Click" />
function remove() {
document.getElementById(btn).click();
}a.aspx是这么写的
<html>
<head>
<title>未定义文档</title>
<script type="text/javascript">
var btn = "<%=button1.ClientID%>"
</script>
<script type="text/javascript" src="../js/mid.js"></script>
</head>
<body>
<asp:Button ID="button1" runat="server" Text="取消"
onclick="button1_Click" Width="60px" />
</body>
</html>a.aspx.cs是这样写的:
protected void btncancel_Click(object sender, EventArgs e)
{
string reason = "已取消修改";
Response.Redirect("error.aspx?reason=" + reason);
}
就是这么做的。确保你的a.aspx里面有<asp:Button ID="button1" runat="server" Text="取消"
onclick="button1_Click" />并且,这个控件没有嵌套在其他控件里面,尤其是GriwView,Repater,Datalist这些多行控件
2:确保你的js文件已经下载完毕
3:确保你的浏览器没有禁用js
怎么都不行mid.js是这么写的
function remove() {
alert('是否运行到这里了'); 这里弹出对话框了,说明运行到这里了
alert(btn);//这里就提示btn未定义
document.getElementById(btn).click();
}a.aspx是这么写的
<html>
<head>
<title>未定义文档</title>
<script type="text/javascript">
var btn = "<%=button1.ClientID%>";
alert(btn); //这里弹出来的信息为button1,这个clientid对吗?
</script>
<script type="text/javascript" src="../js/mid.js"></script>
</head>
<body>
<asp:Button ID="button1" runat="server" Text="取消"
onclick="button1_Click" Width="60px" />
</body>
</html>a.aspx.cs是这样写的:
protected void button1_Click(object sender, EventArgs e)
{
string reason = "已取消修改";
Response.Redirect("error.aspx?reason=" + reason);
}按说这样就应该可以了啊,为什么还不行呢?
a.aspx已经运行了
var btn = "<%=button1.ClientID%>";
alert(btn); //这里弹出来的信息为button1,这个clientid对吗?mid的function也运行了
alert('是否运行到这里了'); 这里弹出对话框了,说明运行到这里了
alert(btn);//这里就提示btn未定义
为什么就是没有得到btn的值,也就是没有从a.aspx传递到mid.js,有什么别的方法传递吗
var btn = "<%=button1.ClientID%>";
alert(btn);
这儿弹出button1说明btn已经定义,之后的该不会提示btn未定义的,确认这儿代码先于后面的那段运行么?至于你说的 "没有从a.aspx传递到mid.js",这个问题不存在,页面加载了js文件那么文件里面的代码就和写在页面上一样的效果别的方法的话,不重复的话直接用id获取应该是可以的
function ChangeText() {
var btn = document.getElementById('button1');
alert(btn);
btn.onclick();}
<script type="text/javascript">
var btn = document.getElementById('<%=button1.ClientID%>');
var btn2 = "<%=button1.ClientID%>";
alert(btn);
alert(btn2);
</script>
我改成这样var btn = document.getElementById('<%=button1.ClientID%>'); btn是null
var btn2 = "<%=button1.ClientID%>"; btn2是button1
a.aspx实际上是main.html的子框架
main.html里用<img src="pic/top_5.jpg" alt="关闭窗口" onClick="remove()">来调用mid.js中的document.getElementById(btn).click();
调用remove()的页面和btn属性所在的a.aspx不是一个页面,所以才取不到btn的值吗?不过我在点main.html中的关闭窗口实际上也得到了button1的clientid啊
<script type="text/javascript">
var btn = "<%=button1.ClientID%>"
alert(btn); //这样会得到button1
</script>
框架结构对传值有影响吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input onclick="window.frames['xxxx'].remove()" value="test" type="button" /><br />
<iframe name="xxxx" src="a.aspx"></iframe>
</body>
</html>
弱弱的问一句onclick="window.frames['xxxx'].remove()" 这个xxxx指的是a.aspx的form的id吗?