javascript - asp.net server side disabled Radiobutton enabled on client side -
i'm having unusual issue asp.net enabled state of radiobutton.
code in .aspx page :
<%@ page language="vb" autoeventwireup="false" codebehind="webform1.aspx.vb" inherits="testradiobutton.webform1" %> <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <script type="text/javascript"> $(document).ready(function () { $('#radyes').change(function () { gereretat(); }); $('#radno').change(function () { gereretat(); }); }); function gereretat() { $('#raddisabledyes').prop('disabled', !$('#radyes').prop('checked')); $('#raddisabledno').prop('disabled', !$('#radyes').prop('checked')); } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:radiobutton id="radyes" runat="server" groupname="test" text="yes"></asp:radiobutton> <asp:radiobutton id="radno" runat="server" groupname="test" text="no"></asp:radiobutton> </div> <div> <asp:radiobutton id="raddisabledyes" runat="server" groupname="test2" text="yes"></asp:radiobutton> <asp:radiobutton id="raddisabledno" runat="server" groupname="test2" text="no"></asp:radiobutton> </div> <asp:linkbutton id="lnktoto" runat="server" text="submit"></asp:linkbutton> </form> </body> </html>
and code behind :
public class webform1 inherits system.web.ui.page protected sub page_load(byval sender object, byval e system.eventargs) handles me.load if not ispostback raddisabledyes.enabled = radyes.checked raddisabledno.enabled = radyes.checked end if stop end sub private sub radiobutton1_checkedchanged(sender object, e eventargs) handles radyes.checkedchanged, radno.checkedchanged raddisabledyes.enabled = radyes.checked raddisabledno.enabled = radyes.checked end sub private sub lnktoto_click(sender object, e eventargs) handles lnktoto.click stop end sub end class
on server side, disable radio buttons on first load. have same conditions in javascript. on client side, if user click yes, enable controls. same on server side. works great type of controls except radio button.
let on load, disable radio buttons. on client side, base of operations on user input, enable them (in javascript). user checked radio button , submit page. on server side, radio button disabled , unchecked. have code check conditions , enable it. radio button still not checked. understand why, server ignore checked state because @ first, think disabled. there way create work? know server receiving checked state because when check request.form, see raddisable=yes.
thanks help.
here hack looking :)
public class webform1 inherits system.web.ui.page protected sub page_load(byval sender object, byval e system.eventargs) handles me.load if radyes.checked raddisabledyes.inputattributes.remove("disabled") raddisabledno.inputattributes.remove("disabled") else raddisabledyes.inputattributes("disabled") = "disabled" raddisabledno.inputattributes("disabled") = "disabled" end if stop end sub private sub radiobutton1_checkedchanged(sender object, e eventargs) handles radyes.checkedchanged, radno.checkedchanged ' not needed anymore, lets leave in here fun! end sub private sub lnktoto_click(sender object, e eventargs) handles lnktoto.click stop end sub end class
this bypasses .net's safety check regarding disabled controls. controls still enabled/disabled appropriately, doing without messing webcontrol.enabled
property.
javascript jquery html asp.net vb.net
No comments:
Post a Comment