在更改DropDownListFor时更新TextBoxFor

时间:2013-10-29 14:59:29

标签: asp.net-mvc-3 dropdownlistfor

当我更改dropdownlistfor的值时,我正在使用ASP MVC 3并且当前在我的文本框中获取新数据时遇到问题。

<div id="BagelProductEdit">
            <h2>Bagel</h2>
             @Html.DropDownListFor(x => x.SelectedOptionBagel, Model.LstBagelsList, new { @class = "width200", @onchange = "refreshTextBoxFors()" })   
             <br /> 

               <table>
                <tr>
                    <td>Bagelnaam</td><td> @Html.TextBoxFor(x => x.LstBagels.ElementAt(x.SelectedOptionBagel).Name,new { Name ="txtEditBagelName" })</td>
                </tr>
                <tr>
                    <td>Vertaling</td><td> @Html.TextBoxFor(x => x.LstBagels.ElementAt(x.SelectedOptionBagel).NameFr,new { Name ="txtEditBagelNameFr" })</td>
                </tr>
                <tr>
                    <td>Prijs</td>
                    <td> @Html.TextBoxFor(x => x.LstBagels.ElementAt(x.SelectedOptionBagel).Price,new { Name ="txtEditBagelPrice" })</td>
                </tr>   

            </table>
             <input class="button widthorderProduct" type="submit" name="BtnEditBagel" value="Edit een bagel" />
        </div>

当我的下拉列表的值发生变化时,如何在文本框中获取刷新值?

1 个答案:

答案 0 :(得分:0)

您可以在该下拉列表中添加ID:

@Html.DropDownListFor(x => x.SelectedOptionBagel, Model.LstBagelsList, new { @class = "width200", @onchange = "refreshTextBoxFors()", id= "myDDL" })  

然后,在refreshTextBoxFors()中,您可以通过这种方式访问​​下拉列表选择的值(假设您使用的是 jQuery ):

$("#myDDL").val();

如果您需要所选文本(不是值):

$("#myDDL :selected").text();

如果您没有使用jQuery,但是使用简单的 Javascript ,您可以使用它来获取DropDownList中的选定值:

var e = document.getElementById("myDDL");
var selValue = e.options[e.selectedIndex].value;

编辑 - 设置文本框的数据:

您可以选择DDL选择值:

if(selValue == '1'){
   $('#test').val('here is the value you want to put');
}
else{
$('#test').val('other value');
}

现在,在评论的示例中,您似乎有一个TextBoxFors列表。因此,如果您将一个id放在循环中,它会将其设置为所有文本框。您可以改为@class = "test"并使用$('.test')代替$('#test')访问文本框。