none
如何实现 用户在任何一个TXT控件内回车可出发提交按钮 RRS feed

  • 问题

  • 有几次我自己拖动的 没有设置任何东西

    后来我试着在任何一个TXT控件内回车 结果触发了我设置的提交按钮

     

    但后来我拖了控件(另外一个页面) 再试 结果不能触发

    我想知道 在不用JS的情况下 什么条件可以使这一切变成我想要的?

    2009年1月7日 1:47

全部回复

  • 请把页面上不同的表单组合到一个Panel中,然后设置该Panel的DefaultButton属性就可以了。

    具体来说,可以这样。

    假设你的页面上有不同区域不同的输入框和按钮,建议将他们按功能分开,比如有如下代码:

    <aspStick out tongueanel ID="firstStep" runat="server" DefaultButton="btnNext">
      <p><asp:TextBox ID="tbNumber" runat="server" Width="300" /></p>
      <p><asp:Button ID="btnNext" runat="server" Text="下一步" /></p>
    </aspStick out tongueanel>

    这个时候你在tbNumber输入框里按回车的时候,就会触发btnNext的提交事件。
    2009年1月7日 5:02
    版主
  • = =!!

    附加:不用容器。。。。。。。。。

     

    2009年1月7日 5:27
  • Panel在客户端的呈现是添加一个div,然后设置一些客户端脚本来触发相应的事件,如果不直接用容器的话,那就需要自己手工完成客户端的脚本,也可以达到这一目的。:)

    2009年1月7日 5:32
    版主
  • 贴你另外一个页面的内容
    2009年1月7日 5:48
    版主
  •  singledark 写:

    有几次我自己拖动的 没有设置任何东西

    后来我试着在任何一个TXT控件内回车 结果触发了我设置的提交按钮

     

    但后来我拖了控件(另外一个页面) 再试 结果不能触发

    我想知道 在不用JS的情况下 什么条件可以使这一切变成我想要的?

     

    这是一个基础html问题

    只要form中有一个默认按扭  也就是  input type=submit的时候  在input type=text 的文本中回车就为提交表单

     

    这是标准 html的默认行为 我们可以通过以下几个办法来回避

     

    1   我们可以给textbox 增加client脚本    onkeypress="if(event.key==回车的key) return false;"

    2  我们可以把叶面的所有button都设置成link command 

    3设置一个bool标记  var submiting=false;   form 增加事件 onsubmit="return submiting;"      在submit的bottun onclick时候  增加 onclick="submiting=true;"

     

    以上3种  请选择你看得比较亲切的使用Big Smile

     

     

    相反的  你要让每次回车都能提交  大可以在一个隐藏位置放置一个0x0大小的 submit button

    当然 如果你设置一个default button   这个button 的html自动会从  input  type=button  转变为 input type=submit

    也能达成同样的效果

    2009年1月7日 17:26
  • <body onkeydown="if(event.keyCode==13) document.forms[0].submit()">

    当然。你需要再判断下是否是在textarea里,如果没有
    textarea就不用判断了
    2009年1月8日 0:20
    版主
  •  

    条件限制

    我只能等到回家才能试了

     

    我这边是直接拖控件 没有任何设置

    就可以实现这样的效果

    2009年1月8日 6:26
  •  

    条件限制

    我只能等到回家才能试了

     

    我这边是直接拖控件 没有任何设置

    就可以实现这样的效果

     

     

     

     

     

    那就好好读下我的解释

    2009年1月8日 8:54
  • 在IE6.0和Firefox/3.0.5的情况下
    如果你随便拖个TextBox和一个button1做测试,你会发现当你直接在TextBox里面按回车键的时候会自动触发button1的click事件。然后你再拖一个button2放在刚才button1的前面,你会发现当你在TextBox中按下回车键的时候,button2的click会触发。

    所以浏览器默认的就是html代码中的第一个button。

    但是如果你有几个button,你想控制在某个TextBox中按下回车键响应某个button事件,如果不符合浏览器的默认规则,你就得如上面写脚步或使用DefaultButton了

    2009年1月9日 5:50
  • 最后一个也可以

    我发现不能触发时 我就重新拖了一遍

    结果还是没有触发。。。。。。。。。

    textbox1 textbox2 button1 reset1

    就这样的顺序

    在textbox2内仍然无法触发button1但不知道为什么 每次在不触发时 按回车 页面会刷新一次,不知道是不是浏览器内的转向

    2009年1月9日 10:07