2010-06-09 4 views
9

En una página tengo un enlace; al hacer clic en él se abre un diálogo y se establece un valor de cuadro de texto para ese diálogo.Perder valor de cuadro de texto en la devolución de datos

Sin embargo, una vez que hago clic en enviar en ese cuadro de diálogo, el valor del cuadro de texto es nulo.

Enlace:

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

Guión:

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

diálogo:

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

Respuesta

7

que pensé:

tengo que añadir esta línea para anexar el cuadro de diálogo de la forma, como de diálogo jQuery añade al cuerpo:

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

El toda la escritura ahora debería tener este aspecto:

<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

Por qué se agrega # antes de Identificación de texto? Yo creo que se debe utilizar:

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

para seleccionar un elemento basado en id ... si no me equivoco ... incluso si quita el hash, es un selector de clase –

+0

Olvidé que es JQuery – Kate

+0

Lo siento pero ¿qué es ? – Kate

Cuestiones relacionadas