Флажок ASP.NET теряет значение при обратной передаче из-за массива JavaScript / jQuery? - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть простой asp:RadioButtonList в теге form, но по какой-то причине он не сохраняет значение при обратной передаче

Вот что у меня есть

<form runat="server">   
<div class="Form">
<span class="FirstField">        
    <asp:RadioButtonList runat="server" ID="radiolist1" AutoPostBack="true" RepeatDirection="Horizontal">
            <asp:ListItem Text="Yes" />
            <asp:ListItem Text="No" />
    </asp:RadioButtonList>        
</span>
</div>
</form>

На данный момент все, что я пытаюсь сделать, это заставить его сохранять ценность при обратной передаче - он работает в Safari, но не в Firefox или Internet Explorer.

Есть идеи?

Edit :

Я только что узнал, что это как-то связано с моим javascript в заголовке моей страницы

$(document).ready(function() {  
    var originalValues = new Array();   
    $("input").focus(function() {     
        if (!originalValues[this.id]) {
          originalValues[this.id] = $(this).val()
        }           
        if ( $(this).val()==originalValues[this.id]) {
               $(this).val('').css({'color': "#000", 'font-style': 'normal'});
        }  

        $(this).css({'background-color':'#E8E8E8' });    
       });

    $("input").blur(function() {
       if ( $(this).attr("value")=="") {
           $(this).val(originalValues[this.id]).css({'color': "#666", 'font-style': 'normal', 'font-weight': 'normal'});
       }   

       $(this).css({'background-color':'#fff' });      
    });
});

Ответы [ 3 ]

1 голос
/ 01 февраля 2011

Я предполагаю, что у вас есть другие элементы ввода на вашей странице, которые используют этот JavaScript.

Попробуйте указать тип ввода, на котором вы хотите запускать JavaScript:

$("input:text").focus(function() {

заменить: текст с типом, который вы используете.

0 голосов
/ 01 февраля 2011

Я вставил ваш код на недавно созданный веб-сайт ASP.NET и смог получить свойства SelectedValue и SelectedIndex.
Используете ли вы специальный адаптер для рендеринга HTML? Пожалуйста, взгляните на: ASP.Net RadioButton теряет ViewState

0 голосов
/ 01 февраля 2011

Включено ли ViewState для страницы и элемента управления?

  • Для свойства EnableViewState для страницы установлено значение true.
  • Для свойства EnableViewState для элемента управления установлено значение true.
  • Свойство ViewStateMode для элемента управления установлено на «Включено» или наследует параметр «Включено».

http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableviewstate.aspx

РЕДАКТИРОВАТЬ : вам не нужно сохранятьстарый «текст» в RadioButton (html = input type=radio), поэтому вы должны применять эту функцию только к текстовым полям и т. д. Я не очень знаком с jQuery, но вы должны быть в состоянии сделать это с JQuery селектор .Может быть с функцией : not-selector /:

[untested]

$("input").not(input[type=radio]).focus(function() { 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...