I want the customer to be able to either buy phone line or credit.
At first, both div
s are hidden, and I want the related div
to unhide (or show
) when the customer chooses one purchase option.
Here is my code, but nothing happens when I check one of the two radio buttons.
I don't want the page to postback, so I cannot set AutoPostBack="true"
Any help on what I am doing wrong is really appreciated =)
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#radLinePanel").click(chkPanelChanged);
$("#radCreditPanel").click(chkPanelChanged);
chkPanelChanged();
});
function chkPanelChanged() {
if ($("#radLinePanel").is(':checked')) {
$("#divLine").show("medium");
}
else {
$("#divLine").hide("medium");
}
if ($("#radCreditPanel").is(':checked')) {
$("#divCredit").show("medium");
}
else {
$("#divCredit").hide("medium");
}
}
</script>
<div class="GreenPanel">
<div class="GreenPanelHeader">
<asp:RadioButton ID="radLinePanel" runat="server" GroupName="ItemToBuy" Checked="false" Text="" ClientIDMode="Static"/>
Buy New Phone Line
</div>
<div id="divLine" class="GreenPanelContent" runat="server">
Blablabla
</div>
<div class="GreenPanelHeader">
<asp:RadioButton ID="radCreditPanel" runat="server" GroupName="ItemToBuy" Checked="false" Text="" AutoPostBack="false"/>
Buy credit
</div>
<div id="divCredit" class="GreenPanelContent" runat="server">
Blablabla
</div>
</div>
When the RadioButton is clicked, the ShowHideDiv JavaScript function is executed. Inside this function, based on whether Yes RadioButton is checked (selected) or unchecked (unselected), the HTML DIV with TextBox is shown or hidden.
Each RadioButton has been assigned a JavaScript OnClick event handler. Note: The RadioButtons must be set with exact same name attribute values in order to make them mutually exclusive. When the RadioButton is clicked, the ShowHideDiv JavaScript function is executed.
Radio buttons allow you to select only one of a predefined set of mutually exclusive options. To create a radio button, you use the <input> element with the type radio . A group of radio buttons is called a radio group. In this example, all the radio buttons have the same name size but different values.
Your syntax is wrong. You can try this:
$(document).ready(function () {
$("#radLinePanel").click(function(){
chkPanelChanged();
});
$("#radCreditPanel").click(function(){
chkPanelChanged();
});
});
Or
$(document).ready(function () {
$("input[type='radio']").click(function(){
chkPanelChanged();
});
});
The chkPanelChanged also can be like this:
$(document).ready(function () {
$("input[type='radio']").on("change", function(){
chkPanelChanged(this);
});
});
function chkPanelChanged(obj) {
if (obj.id == "radLinePanel") {
$("#divLine").show("medium");
$("#divCredit").hide("medium");
}
else if (obj.id == "radCreditPanel")
{
$("#divLine").hide("medium");
$("#divCredit").show("medium");
}
}
If you trying to use grouped radio buttons, Then consider this:
HTML
<div id="radio">
<input type="radio" id="radio1" name="radio" value="1" /><label for="radio1">Choice 1</label>
<input type="radio" id="radio2" name="radio" value="2" checked="checked" /><label for="radio2">Choice 2</label>
<input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">Choice 3</label>
</div>
Jquery
$("input[name='radio']").on("change", function () {
alert(this.value);
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With