wangjia1991 2015-01-29 06:02:43
问题一:
<script type="text/javascript" language="javascript">
function test() {
var obj = window.frames["iframepage"].document.getElementById('ImgUrl2');
window.document.getElementById('ImgUrl1').value = obj.value;
}
</script>

<asp:HiddenField ID="ImgUrl1" runat="server"/>
<button class="btn btn-success" type="button" runat="server" onclick="test()" onserverclick="btnSave_Click"><strong>保存</strong></button></td>

点击按钮后客户端函数和服务器端事件都不执行,后来我用js写:
<button id="btnsave" class="btn btn-success" type="button" runat="server" onserverclick="btnSave_Click"><strong>保存</strong></button></td>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#btnsave").bind("click", function() {
var obj = window.frames["iframepage"].document.getElementById('ImgUrl2');
window.document.getElementById('ImgUrl1').value = obj.value;
alert(window.document.getElementById('ImgUrl1').value)
});
})
</script>
提示有值,服务器端事件执行,但是后台的ImgUrl1.value值为空,为什么??

后来我换了服务器控件没问题。我想知道问什么<button>标签不行,还有以上的两种方法差别在哪??

问题二:
<form runat="sever" >
.....
<button onclick="javascript:window.location.href='gongyingAdd.aspx';" >
</form>
<button>不是服务器控件,点击后,怎么会提交表单呢。就算提交表单onclick="javascript:window.location.href='gongyingAdd.aspx';" 为什么不执行呢。
<form>是不会出现问题二这种现象了,但是如果忘了去掉<form>了

以上的两个问题能详细说明吗?
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
blue_apple2006 2015-01-30
  • 打赏
  • 举报
回复
引用 5 楼 blue_apple2006 的回复:
button 是根据type来确定提不提交的,要注意多查查文档。
form中的button最好使用input来创建。
blue_apple2006 2015-01-30
  • 打赏
  • 举报
回复

button 是根据type来确定提不提交的,要注意多查查文档。
wangjia1991 2015-01-30
  • 打赏
  • 举报
回复
谢谢了,sp1234解惑。
wangjia1991 2015-01-30
  • 打赏
  • 举报
回复
<button>放在 <form /> 也会提交表单,这个还真不知道。 第一个问题我看了asp.net输出的html,客服端事件和服务器段事件之间要有分号。 用js写的今天有测试了一下ImgUrl1.value又有值了,昨天测试了好多遍就是没值,不知道怎么搞的?
wangjia1991 2015-01-30
  • 打赏
  • 举报
回复
这个知识点不错,谢谢。
  • 打赏
  • 举报
回复
至于第二个问题,<button>放在 <form /> 中就会提交表单。这是 html 规定的,浏览器执行的。怨不着 asp.net。
  • 打赏
  • 举报
回复
不要写 onclick="test()" 你可以看看 asp.net 输出的 html,它是怎么写的。你的代码产生了 javascript 异常(网页运行时在浏览器上可以看到)。 你应该写 onclick="test();"