2012-12-17 111 views
0

我使用自動完成引進產品的描述,並獲得產品ID,並用javascript函數價格:無法型號值賦給JavaScript變量

<script type="text/javascript"> 
    $(document).ready(function() { 
    $(function() { 
     $("#Description").change(function() { 
     $("#ProductID").val(Description_autocomplete_hidden.value); 
     $("#Price").load('@Url.Action("GetPrice", "Product")', { id: parseInt($("#ProductID").val()) }); 
     }); 
    }); 
    }); 
</script> 

產品ID工作正常,動作,如,「\ Product \ GetPrice \ 4」被正確調用,但我無法將產品價格分配給$(「#Price」)。

剃刀代碼:

<div class="row"> 
    <div class="label">@Html.Label("Product")</div> 
    <div class="input">@Html.AutoComplete("Description","","Product","_Shared")</div> 
</div> 
<div id ="ProductID"></div> 
<br /> 

<div class="row"> 
    <div class="label">@Html.Label("Price")</div> 
    <div class="input">@Html.Editor("Price")</div> 
</div> 

的用getPrice()在產品控制器:

public string GetPrice(int id) 
{ 
    return unitOfWork.ProductRepository.GetByID(id).Pvp1.ToString(); 
} 
+0

對不起Diodeus,我還沒有看到這個功能 – Joao

+0

@Joao,不能提出任何東西,直到您發佈用getPrice方法的代碼。 –

+0

@Joao順便說一句,如果你在瀏覽器中輸入這個url \ Product \ GetPrice \ 4,你會得到什麼? –

回答

2

@卡洛斯是對的! .load()函數嘗試設置不適用於文本字段的內部HTML。您需要設置textBox的值才能使其工作。只需更換您的線路$("#Price").load('@Url.Action("GetPrice", "Product")', { id: parseInt($("#ProductID").val()) }); });

有了這個:

$.get('@Url.Action("GetPrice", "Product")', { id: parseInt($("#ProductID").val()) }, 
function(result) { 
     //set the value here  
     $("#Price").val(result); 
    }); 
+0

謝謝,我需要的方式。 – Joao

1

看吧:

http://api.jquery.com/load/

jQuery使用瀏覽器的。 innerHTML屬性爲pa檢索檢索到的 文檔並將其插入當前文檔。

根據那裏寫的,jQuery load方法不能用來設置你輸入的值屬性。

請使用:http://api.jquery.com/jQuery.ajax/

它會給你更多的選擇。在成功回調,你可以使用任何你想要的返回值,在你的情況下分配值輸入:

$("#Price").val(data); 
+0

感謝您的意見 – Joao

1
$(document).ready(function() { 
    $(function() { 
     $("#Description").change(function() { 
     $("#ProductID").val(Description_autocomplete_hidden.value); 
    $.ajax({ 
         url: '@Url.Action("GetPrice", "Product")', 
         data: { id: parseInt($("#ProductID").val()) }, 
         dataType: 'text', 
         type: 'get', 
         success: function (data) { 
          $("#Price").val(data); // 
         } 
        });   
     }); 
    }); 
    }); 

試試這個

+0

我試過你的解決方案,但沒有奏效。不管怎樣,謝謝你。 – Joao