2012-03-27 76 views
0

所以我想可以点击一个Button1的当按钮被点击提交。无法获得属性的值“点击”:对象为空或未定义

下面是相关代码:

<input id="Submit1" type="submit" value="Search" onclick="javascript:check_user()" /> 
<script type="text/javascript"> 
      function check_user() { 
       document.getElementById('<%=Button1.ClientID%>').click(); 
      } 
</script> 
<asp:Button id="Button1" runat="server" Visible="false" OnClick="Button1_Click"/> 

,这里是错误,我得到:

Microsoft JScript runtime error: Unable to get value of the property 'click': object is null or undefined

没有人有任何想法,是什么问题呢?我一直在试图解决我的问题。

+0

为什么你需要点击客户端两个按钮?为什么不直接在服务器端运行相关的代码呢?该表单是否发布到第三方位置,并且您正尝试在服务器上执行一些代码? – mellamokb 2012-03-27 22:52:02

+0

如果你能告诉我一个办法让输入的onclick去一个C#方法,那么我将非常感激(可似乎从来没有找对方法,当我尝试) - 否则,这是我能想到这样做的唯一途径。 – 2012-03-27 22:58:06

+0

查看我发布的答案。 – mellamokb 2012-03-27 23:02:40

回答

1

你就不能有一个按钮做呢?

<asp:Button id="Button1" runat="server" Text="Search" OnClick="Button1_Click"/> 

服务器端代码:

protected void Button1_Click(object sender, EventArgs e) { 
    // processing code here 
} 
+0

我使用文本框和输入来过滤我的GridView,所以我需要它在输入的onclick上发生。该按钮是我的方式来调用c#方法。 – 2012-03-27 23:06:01

+0

是否有* *是一个'input'标签? 'asp:Button'有什么问题?它将基本上做同样的事情。 – mellamokb 2012-03-27 23:11:28

+0

非常好的一点。 xD我想这也可以。 – 2012-03-27 23:22:11

1

如果不限于Java的脚本,你可以尝试使用触发器从jQuery的这样

<script type="text/javascript"> 
      function check_user() { 
      $("#<%=Button1.ClientID%>").trigger('click'); 
     //or 

$("#<%=Button1.ClientID%>").click(); 

      } 
</script> 
+0

不幸的是它似乎并没有认识到jQuery的。安装简单吗? – 2012-03-27 23:07:28

+0

是的,只需包括它。它甚至可以从微软的CDN中获得。 – ThiefMaster 2012-03-27 23:11:57

+0

甜 - 它没有中断,但它并没有最终调用按钮的OnClick方法... – 2012-03-27 23:23:05

0

当你做的按钮看不见,asp.net不渲染HTML按钮控制。 (您可以检查HTML源代码)。您可以创建一个样式,一旦在客户端渲染,使其不可见其应用到asp.net按钮。

.MyHiddenButtonStyle{display:none;}// add this in the header in styles 

<input id="Submit1" type="button" name="search" value="Search" onclick="javascript:check_user()" /> 
<asp:Button id="Button1" runat="server" CssClass="MyHiddenButtonStyle" OnClick="Button1_Click"/> 

function check_user() { 
     document.getElementById('<%=Button1.ClientID%>').click(); 
    } 

还有一件事情,我已经提交按钮作为正常的按钮。无论如何,你正在使用JavaScript提出回发事件。

相关问题