2015-10-06 36 views
-1

對於我的生活無法弄清楚如何顯示我從我的控制器的'cics'對象返回的值。當我調試控制器時,它將返回值。但我似乎無法在ajax調用中找出我的'成功'方法。任何人都可以幫助我,我要去哪裏錯了?此外,這可以有多個產品,所以我試圖保持它特定於該元素。任何幫助將非常感激。無法讓Jquery成功的方法工作

function FillProductbyupc(el) { 
     var val = el.value; 
     var container = $(el).parent().parent(); 
     var pcics = container.children(".cics"); 
     var elements = document.getElementsByClassName('product'); 


     $.ajax({ 
      url: '/Case/GetData/', 
      type: "GET", 
      dataType: "JSON", 
      data: "upc=" + val, 
      success: function (cics) { 
       //container.cics.val(cics.CorpItemCode); 

       $("#upc").html(""); // clear before appending new list 
       $("#corpitemcode").html(""); // clear before appending new list 
       $("#itemdesc").html(""); // clear before appending new list 
       $("#corpitemcode").append(
        $('#corpitemcode').val(cics.CorpItemCode)); 

       $("#itemdesc").append(
        $('#itemdesc').val(cics.ItemDsc)); 

      }, 
      error: function() { 
       alert("UPC does not exist"); 
      } 
     }); 
    } 

這是我的產品。

<div class="product"> 
<div class="alert alert-info" role="alert"> 
    <div class="row"> 
     <div class="form-group"> 
      <div class="col-md-2"> 
       @Html.LabelFor(x => x.UPC)<small><span class="glyphicon glyphicon-asterisk text-danger"></span></small> 
       @Html.TextBoxFor(x => x.UPC, null, new { @class = "form-control produpc", placeholder = Html.DisplayNameFor(x => x.UPC), @onblur = "FillProductbyupc(this)" }) 
       @Html.ValidationMessageFor(x => x.UPC, "", new { @class = "text-danger" }) 
      </div> 

      <div class="col-md-2"> 
       @Html.LabelFor(x => x.PLU)<small><span class="glyphicon glyphicon-asterisk text-danger"></span></small> 
       @Html.TextBoxFor(x => x.PLU, null, new { @class = "form-control prodplu", placeholder = Html.DisplayNameFor(x => x.PLU) }) 
       @Html.ValidationMessageFor(x => x.PLU, "", new { @class = "text-danger" }) 
      </div> 

      <div class="col-md-2"> 
       <label>CIC</label> 
       @Html.TextBoxFor(p => p.CIC, new { @class = "form-control prodcic" }) 
      </div> 

      <div class="col-md-2"> 
       <label>Desc</label> 
       @Html.TextBoxFor(p => p.Description, new { @class = "form-control proddesc" }) 
      </div> 

      <div class="col-md-1"> 
       <label>Size</label> 
       @Html.TextBoxFor(p => p.Size, new { @class = "form-control prodsize" }) 
      </div> 

      <div class="col-md-1"> 
       <label>Shelf Price</label> 
       @Html.TextBoxFor(p => p.ShelfPrice, new { @class = "form-control prodprice" }) 
      </div> 

      <div class="col-md-1"> 
       <label>Like CIC</label> 
       @Html.TextBoxFor(p => p.LikeCIC, new { @class = "form-control prodlikecic" }) 
      </div> 
     </div> 

    </div> 

    <div class="row"> 
     <div class="col-md-12"> 
      @Html.RemoveLink("Remove", "div.product", "input.mark-for-delete") 
     </div> 
    </div> 
</div> 

控制器。

public JsonResult GetData(string upc, decimal? corpitemcode) 
    { 
     if (!string.IsNullOrEmpty(upc)) 
     { 
      upc = upc.Replace("-", ""); 
     } 

     CICS cics = new CICS(); 
     cics = CICSManager.GetbyUPCorCorp(upc, corpitemcode); 

     return Json(cics, JsonRequestBehavior.AllowGet); 
    } 

工作職能

function FillProductbyupc(el) { 
var val = el.value; 
var container = $(el).parent().parent(); 
var pcics = $(container).find('.prodcic'); 
var pdesc = $(container).find('.itemdsc'); 

$.ajax({ 
    url: '/Case/GetData/', 
    type: "GET", 
    dataType: "JSON", 
    data: "upc=" + val, 
    success: function (cics) { 
     pcics.val(cics.CorpItemCode); 
     pdesc.val(cics.ItemDsc); 


    }, 

    error: function() { 
     alert("UPC does not exist"); 
    } 
}); 

}

+0

你期望'$(「#corpitemcode」)。append( $('#corpitemcode').val(cics.CorpItemCode));'要做什麼?你正在爲自己添加一個元素。 – Barmar

+0

而'.val(cics.CorpItemCode)'只對輸入元素有意義。什麼類型的元素是'#corpitemcode'? – Barmar

+0

所有這些都是輸入元素。我試圖用'cics'對象中的內容填充其他文本框。我只是不知道如何填充這些。 – brachen33

回答

0

html().append()是用於添加到HTML節點。我懷疑你想要的是:

 success: function (cics) { 
      //container.cics.val(cics.CorpItemCode); 

      $("#upc").val(""); 
      $("#corpitemcode").val(cics.CorpItemCode); 
      $("#itemdesc").val(cics.ItemDsc); 
     }, 

插入新的HTML之前沒有必要清除。