Я использовал 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 > </A>
</DIV>
</DIV>
Не можете ли вы использовать 'inAction.SelectedValue' в файле с кодом? – Satpal
почему-то вAction.SelectedValue всегда приходит в нуль для IE 7 8 и 9. Какова основная причина того, что я пытаюсь решить kludgy. – ledgeJumper
Попробуйте ** Request.Form ["clientSelection"] ** вместо этого. –