I have this form where a user selects option from dropdown and the respective div is displayed. However my problem is when the submit button is clicked, the on click method is being executed successfully but the current div is hidden and the first div is shown. How can I stop this from happening?
jQuery code:
$(document).ready(function () {
displayDiv();
$('#ddlist').change(displayDiv);
function displayDiv() {
switch ($("#ddlist").val()) {
case "addition":
$("#addition").show();
$('#conversion').hide();
$('#triangle').hide();
$('#quadratic').hide();
break;
case "conversion":
$("#addition").hide();
$('#conversion').show();
$('#triangle').hide();
$('#quadratic').hide();
break;
case "triangle":
$("#addition").hide();
$('#conversion').hide();
$('#triangle').show();
$('#quadratic').hide();
break;
case "quadratic":
$("#addition").hide();
$('#conversion').hide();
$('#triangle').hide();
$('#quadratic').show();
break;
}
}
});
form code:
Please choose required calculation from the following list:
<select id="ddlist">
<option value="addition">Addition of three numbers</option>
<option value="conversion">Convert from Fahrenheit to Celsius</option>
<option value="triangle">Calculate the side of a right-angled triangle</option>
<option value="quadratic">Find x using the Quadratic Equation</option>
</select><br /><br />
</p>
<div id="addition">
<p>
Input variable a : <asp:TextBox runat="server" ID="varA" CssClass="numeric"></asp:TextBox><br /><br />
Input variable c : <asp:TextBox runat="server" ID="varB" CssClass="numeric"></asp:TextBox><br /><br />
Input variable b : <asp:TextBox runat="server" ID="varC" CssClass="numeric"></asp:TextBox><br /><br />
<asp:Button ID="additionSubmit" runat="server" Text="Submit"
onclick="additionSubmit_Click" /><br /><br />
<asp:Label ID="lblAddition" runat="server" Text="" CssClass="label"></asp:Label>
</p>
</div>
<div id="conversion">
<p>
Input Fahrenheit Temperature : <asp:TextBox runat="server" ID="temperatureF" CssClass="numeric"></asp:TextBox><br /><br />
<asp:Button ID="converstionSubmit" runat="server" Text="Submit"
onclick="converstionSubmit_Click" /><br /><br />
<asp:Label ID="lblConversion" runat="server" Text="" CssClass="label"></asp:Label>
</p>
</div>
<div id="triangle">
<p>
Input side a : <asp:TextBox runat="server" ID="tsideA" CssClass="numeric"></asp:TextBox><br /><br />
Input side b : <asp:TextBox runat="server" ID="tsideB" CssClass="numeric"></asp:TextBox><br /><br />
<asp:Button ID="triangleSubmit" runat="server" Text="Submit"
onclick="triangleSubmit_Click" /><br /><br />
<asp:Label ID="lblTriangle" runat="server" Text="" CssClass="label"></asp:Label>
</p>
</div>
<div id="quadratic">
<p>
Input side a : <asp:TextBox runat="server" ID="sideA" CssClass="numeric"></asp:TextBox><br /><br />
Input side c : <asp:TextBox runat="server" ID="sideB" CssClass="numeric"></asp:TextBox><br /><br />
Input side b : <asp:TextBox runat="server" ID="sideC" CssClass="numeric"></asp:TextBox><br /><br />
<asp:Button ID="quadraticSubmit" runat="server" Text="Submit"
onclick="quadraticSubmit_Click" /><br /><br />
<asp:Label ID="lblQuadratic" runat="server" Text="" CssClass="label"></asp:Label>
</p>
</div>
on click code (addition only, rest is similar):
protected void additionSubmit_Click(object sender, EventArgs e)
{
if (varA.Text != null && varB.Text != null && varC.Text != null)
{
int result = Convert.ToInt32(varA.Text) + Convert.ToInt32(varB.Text) + Convert.ToInt32(varC.Text);
lblAddition.Text = " a + b + c = " + result.ToString("#.##") + "\r (a+b+c)";
}
else
{
lblAddition.Text = "Please input all fields!";
}
}
trying to achieve the above with AJAX. here is what I have up to now:
$("#btnSubmit").click(function() {
$.ajax({
$('#addition,#conversion,#triangle').hide(),
$('#quadratic').show();
});
});