0

我想在用户单击 ASP.NET 服务器端按钮时触发 jQuery 表单显示。

但是,当我在运行时单击按钮时,页面重新加载非常快.. 没有打开 jQuery 表单..

我试图创建的效果可以在这里看到:JSFiddle

基本上,当有人单击 ASP.NET 按钮时,我想打开相同的对话框。

这是我的代码:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

<asp:Button ID="createuser" runat="server" Text="Button" OnClientClick='$("#dialogform").dialog("open");'/>


<script type="text/javascript">

$(function() {

    $( "#dialogform" ).dialog({
      autoOpen: false,
      height: 300,
      width: 450,
      modal: true,
      buttons: {
        "Create an account": function() {
          alert('Hello');
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      },
      close: function() {
        $( this ).dialog( "close" );
      }
    });
  });

</script>

我也尝试过使用jQuery而不是$标识符来调用 jQuery 函数。而且我还尝试删除该onClientClick事件,并尝试使用此代码代替上面的脚本块:

<script type="text/javascript">

$(function() {

    $( "#dialogform" ).dialog({
      autoOpen: false,
      height: 300,
      width: 450,
      modal: true,
      buttons: {
        "Create an account": function() {
          alert('Hello');
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      },
      close: function() {
        $( this ).dialog( "close" );
      }
    });

    $( "#createuser" )
      .button()
      .click(function() {
        $( "#dialogform" ).dialog( "open" );
      });
  });

</script>

谁能确定是什么问题?

4

3 回答 3

1

而不是使用

<asp:Button ID="createuser" runat="server" Text="Button" OnClientClick='$("#dialogform").dialog("open");'/>

尝试使用

<input type='button' value="Button"  onclick='$("#dialogform").dialog("open");' />
于 2013-06-24T10:27:41.470 回答
0

您的按钮可能会发回服务器,您需要防止这种情况发生:

<asp:Button ID="createuser" runat="server" Text="Button" OnClientClick='$("#dialogform").dialog("open"); return false;'/>

如果 Swapnil 上面提到的 html 输入在 '$' 上抛出错误,那么听起来 jQuery 要么没有加载,要么 '$' 被其他东西接管了。我会使用您浏览器的开发人员工具来查看是否正在下载 jQuery。在 IE 中,按 F12,转到网络选项卡,单击“开始捕获”按钮,刷新页面,然后使用 jQuery 检查行。

于 2013-06-24T21:36:04.800 回答
0

试试这个:

如果您直接引用服务器端的控件,则 ClientID 应包括任何 NamingContainer 信息(来自 GridView 或 Repeater 或其他任何地方)。使用浏览器的开发者工具(IE 有开发者工具、Firefox 的 Firebug 等)找出控件的客户端 ID,然后调试 JavaScript。

function  DoStuff() {
     $( "#dialogform" ).dialog( "open" );
     return false;
 });


<asp:LinkButton id="createuser" OnClientClick="DoStuff();" runat="server">
于 2013-06-24T10:34:38.077 回答