2013-03-05 70 views
0
  <link type="text/css" rel="stylesheet" href="scripts/jquery-ui-1.8.5.custom.css" /> 
     <script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script> 
     <script type="text/javascript" src="scripts/jquery-ui-1.8.5.custom.min.js"></script> 


    <script type="text/javascript"> 
    function getalert1(Leave_RegisterID) 
      { 
       document.getElementById('<%= hdnLeave_RegID.ClientID %>').value = Leave_RegisterID; 
       $.fx.speeds._default = 1000; 
       $(function() { 
        $('#reason').dialog({ 
         autoOpen: false, 
         show: "blind", 
         hide: "explode", 
         display: '' 
        }); 
        $('.LeaveReason1').click(function() 
        { 
         $('#reason').html(); 
         $('#reason').dialog('open'); 
         return false; 
        }); 
       }); 
      } 
</script> 

,我按一下按钮:JQuery的对话框中的浏览器不开放

 <button id="LeaveReason1" class="LeaveReason1" onclick="getalert1('<%# Eval("Leave_RegisterID") %>');" title="Decline">Decline</button> 

然而,当我在Firebug调试它不会得到这个代码里面,它应该:

$('#reason').html(); 
    $('#reason').dialog('open'); 
    return false; 

HTML

<div id="reason" style="height: 300px; min-height: 109px; width: auto; display:none;" class="ui-dialog-content ui-widget-content" runat="server"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
        <td width="25%" class="body_txt" style="padding-right:2px"> 
         <asp:Label ID="lblReason" runat="server" Text="Reason:" ></asp:Label> 
        </td> 
        <td width="75%"> 
         <asp:TextBox ID="txtReason" Height="40%" Width="100%" MaxLength="200" TextMode="MultiLine" runat="server" CssClass="txt_bx" ></asp:TextBox> 
        </td> 
       </tr> 
       <tr> 
        <td colspan="2">&nbsp;</td> 
       </tr>      
       <tr> 
        <td colspan="2" align="center"> 
         <asp:Button Width="30%" runat="server" Text="Submit" id="btnSubmit" Height="25px" CssClass="clButton" ></asp:Button>&nbsp;&nbsp;&nbsp; 
        </td> 
       </tr> 
      </table> 
     </div> 
+0

你没写里面标签的功能。你的原始代码中有这个错误吗? – luckystars 2013-03-05 05:01:52

回答

0

它不会进入上述给定的代码内..因为你有另一个点击事件内的代码..基本上是为了工作,你必须再次点击相同的按钮....这将无法正常工作..

试试这个

function getalert1(Leave_RegisterID) // you are calling this function whn click 
    { 
     document.getElementById('<%= hdnLeave_RegID.ClientID %>').value = Leave_RegisterID; 
     $.fx.speeds._default = 1000; 
     //$(function() { and no need of ready function here 
      $('#reason').dialog({ 
       autoOpen: false, 
       show: "blind", 
       hide: "explode", 
       display: '' 
      }); 

      // $('.LeaveReason1').click(function() { again you have a click event here which is not necessary at all.. since the click is already fired by getalert1() 
       $('#reason').html(); 

       $('#reason').dialog('open'); 
       return false; 

     }); 
    } 
+0

它不工作页面只刷新 – vini 2013-03-05 05:07:04

+0

调试它,看到....'console.log('here')'内'getalert11()'并检查它是否进入函数内部...让我知道。 .. – bipen 2013-03-05 05:10:06

+0

是的,它进入功能。它移动了整个功能,但页面只是刷新到最后 – vini 2013-03-05 05:19:57

0
$(document).ready(function(){ 

//separate your dialog init 
$(function() { 
    $('#reason').dialog({ 
     autoOpen: false, 
     show: "blind", 
     hide: "explode" 
    }); 
}); 

//only have one click event 
$('.LeaveReason1').click(function() 
       { 
     document.getElementById('<%= hdnLeave_RegID.ClientID %>').value = Leave_RegisterID; 
       $.fx.speeds._default = 1000; 

        $('#reason').html(); 
        $('#reason').dialog('open'); 
        return false; 
       }); 
+0

但我在按钮上调用此功能,为什么要把它放在document.ready – vini 2013-03-05 05:16:42

+0

只是确保。当页面中的所有内容被加载时,document.ready都会触发。我们不希望将点击事件分配给尚不存在的事件。但这不是这里的重点,只是习惯于这样做.. – 2013-03-05 05:22:52