2010-06-09 4 views
9

На странице у меня есть ссылка; нажатие на нее открывает диалоговое окно и устанавливает для этого диалогового окна значение текстового поля.Потеря значения текстового поля при обратной передаче

Однако, как только я нажимаю кнопку «Отправить» в этом диалоговом окне, значение текстового поля равно null.

Ссылка:

<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 ... если я не ошибаюсь .. даже вы удалите хэш, его селектор классов –

+0

Я забыл, что это JQuery – Kate

+0

Прошу прощения, но что такое ? – Kate

Смежные вопросы