2013-09-27 2 views
1

Я использовал This SO answer в качестве ссылки для отправки переменной javascript на сервер. Однако, когда я реализую это решение, все правильно возникает в js alert(), но значение моего скрытого поля при попадании на сервер всегда пуст.отправить javascript переменную в asp.net webforms code-behind всегда пуст

Javascript и HTML:

<script> 
    function rblSelectionChange() 
    { 
     var selection = $('#inAction input:checked').val(); 
     var stuff = $('#<%= clientSelection.ClientID %>').val(selection); 
     alert(stuff.val()); 
    } 
</script> 
<asp:HiddenField ID="clientSelection" runat="server" /> 
<div class="row-fluid"> 
    <asp:RadioButtonList runat="server" ID="inAction" ClientIDMode="Static"> 
     <asp:ListItem onClick="rblSelectionChange();" Value="RuEp" Text="I remember my <b>username</b>. Please email me a new <b>password</b>." /> 
     <asp:ListItem onClick="rblSelectionChange();" Value="ReEu" Text="I remember my <b>email</b>. Please email me my <b>username</b>." /> 
     <asp:ListItem onClick="rblSelectionChange();" Value="ReEup" Text="I remember my <b>email</b>. Please email me my <b>username</b> and a new <b>password</b>." /> 
    </asp:RadioButtonList> 
</div> 

На представить события страницы, я стараюсь, чтобы получить значение и пусто:

protected void btnActionSelect_Click(object sender, EventArgs e) 
{ 
    string selection = clientSelection.Value; 
    ...snip... 
} 

Любая идея, что мне не хватает?

UPDATE:

Я попытался изменить свое скрытое поле в чистом HTML один, а не осины: управления.

<input type="hidden" id="clientSelection" name="clientSelection" value="" /> 

Я изменил код, за следующим образом:

private string _selection = ""; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    //_selection = clientSelection.Value.ToString(); 
    if (IsPostBack) 
     _selection = Request.Form["clientSelection"]; 
} 

Я все еще получаю ничего для значения Request.Form [ "clientSelection"]. Важно отметить, что это работает в Chrome, FF и IE10. Браузер, с которым я пытаюсь заставить его работать, - это IE 7 8 и 9. Если кто-то может помочь мне в этом, он будет весьма признателен. Я полностью в тупике.

EDIT: По желанию, здесь есть источник страницы, когда я проверить его в IE10 (с браузером и документ режима установлен в IE7)

<DIV id=ctl00_cphBodyWithForm_htmActionSelect class=row-fluid> 
    <P class=lead>Can't access your account? Please select from the following options: </P> 
    <SCRIPT> 
       function rblSelectionChange() 
       { 
        var selection = $('#inAction input:checked').val(); 
        var stuff = $('#ctl00_cphBodyWithForm_clientSelection').val(selection); 
        alert(stuff.val()); 
       } 
    </SCRIPT> 
    <INPUT id=ctl00_cphBodyWithForm_clientSelection type=hidden name=ctl00$cphBodyWithForm$clientSelection jQuery191034119593101524303="7"> 
    <DIV class=row-fluid> 
     <TABLE id=inAction border=0> 
      <TBODY> 
      <TR> 
      <TD><INPUT onclick=rblSelectionChange(); id=inAction_0 type=radio value=RuEp name=ctl00$cphBodyWithForm$inAction jQuery191034119593101524303="8"><LABEL for=inAction_0>I remember my <B>username</B>. Please email me a new <B>password</B>.</LABEL></TD> 
      </TR> 
      ...snip... 
      </TBODY> 
     </TABLE> 
    </DIV> 
    <DIV class=span12> 
     <A class="submitButton roundedBR" href="javascript:__doPostBack('ctl00$cphBodyWithForm$ctl00','')">Continue &gt; </A> 
    </DIV> 
</DIV> 
+0

Не можете ли вы использовать 'inAction.SelectedValue' в файле с кодом? – Satpal

+0

почему-то вAction.SelectedValue всегда приходит в нуль для IE 7 8 и 9. Какова основная причина того, что я пытаюсь решить kludgy. – ledgeJumper

+0

Попробуйте ** Request.Form ["clientSelection"] ** вместо этого. –

ответ

2

Выполнить свой HTML через валидатор. Если ваши значения форм не публикуются в определенных браузерах, это звучит так, будто у вас есть недопустимый HTML, и это является источником вашей проблемы.

После исправления проблемы с HTML вы можете избавиться от этого JavaScript и просто использовать значение inAction.

W3C Markup Validation Service

Вы упомянули, что вы были странные вопросы формы закрывающего тега. Форма не может быть помещена в форму, поэтому, возможно, это и есть корень вашей проблемы.

+0

Yup, у меня была форма для окна поиска в основной форме webforms. Спасибо за помощь, и на стороне примечания, MVC ftw. – ledgeJumper

+0

Ах, я должен подождать 23 часа, чтобы наградить щедрость. – ledgeJumper

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