Sunday, June 2, 2024
 Popular · Latest · Hot · Upcoming
166
rated 0 times [  168] [ 2]  / answers: 1 / hits: 33812  / 10 Years ago, mon, july 21, 2014, 12:00:00

I want the customer to be able to either buy phone line or credit.
At first, both divs 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>

More From » jquery

 Answers
126

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);
});

[#70125] Friday, July 18, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
arthur

Total Points: 729
Total Questions: 107
Total Answers: 109

Location: China
Member since Mon, Aug 22, 2022
2 Years ago
;