2010-06-09 75 views
9

在頁面中我有一個鏈接;點擊它打開一個對話框並設置該對話框的文本框值。在回發中丟失文本框值

但是,一旦我點擊了在該對話框中提交,文本框的值爲空。

鏈接:

<a href="#" onclick="javascript:expand('https://me.yahoo.com'); 
jQuery('#openiddialog').dialog('open'); return false;"> 
<img id="yahoo" class="spacehw" src="/Content/Images/spacer.gif" /></a> 

腳本:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery("#openiddialog").dialog({ 
     autoOpen: false, 
     width: 600, 
     modal: true, 
     buttons: { 
      "Cancel": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 
function expand(obj) { 
    $("#<%=openIdBox.ClientID %>").val(obj); 
} 

對話框:

<div id="openiddialog" title="Log in using OpenID"> 
<p> 
    <asp:Label ID="Label1" runat="server" Text="OpenID Login" /> 
    <asp:TextBox ID="openIdBox" EnableViewState="true" runat="server" /> 
    <asp:JButton Icon="ui-icon-key" ID="loginButton" runat="server" Text="Authenticate" OnClick="loginButton_Click" /> 
    <asp:CustomValidator runat="server" ID="openidValidator" ErrorMessage="Invalid OpenID Identifier" ControlToValidate="openIdBox" EnableViewState="false" OnServerValidate="openidValidator_ServerValidate" /> 
    <br /> 
    <asp:Label ID="loginFailedLabel" runat="server" EnableViewState="False" Text="Login failed" Visible="False" /> 
    <asp:Label ID="loginCanceledLabel" runat="server" EnableViewState="False" Text="Login canceled" Visible="False" /> 
</p> 
</div> 

回答

7

我想通:

我要加入這一行的對話框的形式添加,如jQuery的對話框追加到身體:

$("#openiddialog").parent().appendTo(jQuery("form:first")); 

的整個腳本現在應該是這樣的:

<script type="text/javascript"> 
jQuery(document).ready(function() { 
    jQuery("#openiddialog").dialog({ 
     autoOpen: false, 
     width: 600, 
     modal: true, 
     buttons: { "Cancel": function() { 
      $(this).dialog("close"); 
     } 
     } 
}); 
$("#openiddialog").parent().appendTo(jQuery("form:first")); 
}); 
function expand(obj) { 
    $("#<%=openIdBox.ClientID %>").val(obj); 
} 

1

爲什麼你的文本框ID前加#?我認爲你應該使用:

function expand(obj) { 
    $("<%=openIdBox.ClientID %>").val(obj); 
} 
+0

選擇一個基於ID的元素...如果我沒有弄錯..即使你刪除了散列,它的類選擇器 – 2010-06-09 08:26:06

+0

我忘記了它是JQuery – Kate 2010-06-09 08:34:26

+0

對不起,但是什麼是? – Kate 2010-06-09 10:52:04