如何在下拉列表更改时为文本框分配值

时间:2013-02-15 11:27:58

标签: asp.net-mvc

我有一个下拉列表。在字符串值未分配给文本框之后,下拉选择从db获取值。

我的控制器

 [HttpPost]
        public ActionResult GetCountryBasedCharge(Int64 ID)
        {
            OrderBilling objOrderBilling = new OrderBilling();
            OrderBilling objCalculate = new OrderBilling();
            objCalculate = objOrderBilling.AutoCompleteState(ID);
            string chargeid =Convert.ToString(objCalculate.ShippingCharge);
            return Content(chargeid);
        }

我的观点

@Html.DropDownList("Country", (IEnumerable<SelectListItem>)ViewBag.countrytitles, 
 "-----------Select----------"
 , new { id = "txtBCountry", @class = "selectStyle" })</td><td><label style="color:red" >*</label>
   <input type="text" class="textbox" id="txtChargeAmts" />


<script type="text/javascript" >

    $(document).ready(function () {
      var CountryID;
        $(function () {
            $("#txtBCountry").change(function () {
                CountryID = $("#txtBCountry option:selected").val();
                $.ajax({
                    type: "POST",
                    url: '../Billing/GetCountryBasedCharge',
                    data: { ID: CountryID },
                    success: function (data) {
                        if (data) {
                            alert(data);
       **$('#txtChargeAmts').html(data);**
                        }
                    }
                });
            });
        });

</script>

2 个答案:

答案 0 :(得分:1)

我假设您的data参数获得了一个值,如果是这样的话,您的问题就是您试图将返回值作为html而不是输入文本中的值。

如果要为表单输入标记分配值,则应使用.val()函数

阅读.val() jquery documentation

尝试更改此行:

$('#txtChargeAmts').html(data);

$('#txtChargeAmts').val(data);

答案 1 :(得分:0)

使用

$('#txtChargeAmts').val(data); 

取代

$('#txtChargeAmts').html(data);