2014-05-09 51 views
2

設置文本框,複選框,下拉列表中nopcommerce你好,我有一個觀點如下如何清除和使用jquery

<table class="adminContent"> 
    <tr> 
     <td class="adminTitle"> 
      @Html.NopLabelFor(model => model.Published) 
     </td> 
     <td class="adminData"> 
      @Html.EditorFor(model => Model.Published) 
      @Html.ValidationMessageFor(model => Model.Published) 
     </td> 
    </tr> 
    <tr> 
     <td class="adminTitle"> 
      @Html.NopLabelFor(model => model.SearchCategoryId) 
     </td> 
     <td class="adminData"> 
      @Html.DropDownList("SearchCategoryId", Model.AvailableCategories) 
     </td> 
    </tr> 
    <tr> 
     <td class="adminTitle"> 
      @Html.NopLabelFor(model => model.Price) 
     </td> 
     <td class="adminData"> 
      @Html.EditorFor(model => Model.Price) 
      @Html.ValidationMessageFor(model => Model.Price) 
     </td> 
    </tr> 
</table> 

我試圖把價格定在JavaScript這樣的

$('#@Html.FieldIdFor(model => model.Price)').val('3333'); 

但它沒有反映在視圖中也需要重置下拉列表以使用「全部」選項並重置複選框

+0

'#@Html.FieldIdFor(model => model.Price)'是服務器端代碼,其計算結果爲html控件。使用它作爲你的jQuery選擇器肯定是行不通的。你需要找出你的元素的實際ID。查看產生的html標記,或者在服務器上自己硬編碼。 –

回答

1

默認情況下,nopCommerce使用Telerik NumericTextBox。你不能使用jQuery「val」函數來設置它的值。你沒有規定你的nopCommerce版本,所以我認爲你使用verion 3.30。它使用KendoUI(以前它使用Telerik MVC擴展)。你可以找到API here。它演示瞭如何設置NumericTextBox的值

0

您顯示的代碼是正確的。這就是FieldIdFor的預期用途,所以問題應該放在你沒有顯示的代碼中。

我的第一個建議是要檢查瀏覽器的控制檯中的錯誤,並設置一個斷點與debugger;

要繼續這個問題你應該給有關上下文的一些詳細信息,例如:

  • 完成該塊的JavaScript代碼。
  • 呈現的html代碼的示例。
+0

代碼是好的,它的工作,但我設置的價值沒有顯示在頁面 –

+0

所以你知道代碼的作品,這是很好的。然後,您需要展示更多內容才能找到不起作用的東西。例如,你有沒有看過實際的HTML標記?也許你正在使用模板的控件,不呈現正確的ID ...也許你是在DOM準備好之前執行jquery調用... –