24
<% using (Html.BeginForm() { %>

  <%=Html.DropDownList("TopItemsList", ViewData["ListData"], new { onchange="[???]" })%>

<% } %>

In the above example, what value should you set onchange to? Or, how do you get the correct form?

Is there any difference with Ajax.BeginFrom?

2 Answers 2

55

try this:

<%=Html.DropDownList("TopItemsList", ViewData["ListData"], new { onchange="this.form.submit();" })%>

Every form element in the has a "form" property that is pointed to the form that contains this element.

Yes, using "Html." and "Ajax." has a difference. Ajax. means that partial page update will be used and the whole page will not be reloaded.

Sign up to request clarification or add additional context in comments.

2 Comments

Just to correct the statement, <%=Html.DropDownList("TopItemsList", ViewData["ListData"], new { @onchange="this.form.submit();" })%> note the @ symbol.
If you have multiple dropdowns or textboxes you need to do this too, I created a CSS class and added this JS. $(".ajaxForcePost").change(function () { this.form.submit(); });
6

Why are you mixing your html with javascript??

Delete the onchange attribute and add some JQuery:

$("#TopItemsList").change(function () {

    $("input[type=submit]").click();

});

1 Comment

Will cause issues if you have more than one submit input.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.