2010-06-09 7 views
9

Dans une page, j'ai un lien; cliquant dessus ouvre une boîte de dialogue et définit une valeur de zone de texte pour cette boîte de dialogue.Perte de la valeur de la zone de texte lors de la publication

Cependant, une fois que je clique sur soumettre dans cette boîte de dialogue, la valeur de la zone de texte est nulle.

Lien:

<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:

<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); 
} 

Dialog:

<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> 

Répondre

7

je me suis dit:

Je dois ajouter cette ligne pour ajouter la boîte de dialogue à la forme, comme dialogue jquery ajoute au corps:

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

Le script entier devrait ressembler à ceci:

<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

Pourquoi ajouter # avant ID textbox? Je pense que vous devriez utiliser:

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

pour sélectionner un élément basé sur id ... si je ne me trompe pas .. même vous supprimez le hachage, c'est un sélecteur de classe –

+0

Je l'oublie est JQuery – Kate

+0

Je suis désolé, mais ce qui est ? – Kate

Questions connexes