简体   繁体   中英

MVC @Html.DropDownListFor change displayed value in javascript

Using MVC 4, I am trying to change the displayed value in the view for @Html.DropDownListFor , based on the action of another drop down list. In the below example, when the user selects any value in the state list, I want the @Html.DropDownListFor to display the indexed 203 value which is US. How to do this?

//in the controller

ViewBag.statelist = new SelectList(db.states, "state_abbr", "state_name");

ViewBag.countrylist = new SelectList(db.countries, "country_id", "country_name", -1);

//in the View

<div class="form-group">
    @Html.LabelFor(model => model.states)
    @Html.DropDownList("ddlstate", ViewBag.statelist as SelectList, Model.rrq_sec1_waddr_stprov, htmlAttributes: new { @onchange="StateChange()" })
</div>

<div class="form-group">
   @Html.LabelFor(model => model.country)
   @Html.DropDownListFor(model => model.country, ViewBag.countrylist as SelectList, "Select Country", htmlAttributes: new { @id="ddlcountry" })
</div>

//javascript
function StateChange() {

    var state = document.getElementById("ddlstate").value;
    $("#ddlcountry").val = 203;
};

How do I get the #ddlcountry index=203 which is "US" show up in view then the state drop down changes?

This might help u to select value in second dropdown, onchange event of first dropdown using this jQuery function.

 $('#ddlstate').change(function () {
 $("#ddlcountry").val( $('#ddlstate').val());
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM