2016-10-31 26 views
0

我在HTML文件中的以下HTML/RAZOR代碼來填充組名和表格式的數字文本框爲每個組:如何從kendo numerictextbox獲取值?

<div id="minStaffingSettings" style="width: 400px;"> 
      <fieldset> 
       <legend>Minimum Staffing</legend> 
       <div> 
        <table> 
         @for (int i = 0; i < Model.AvailableUserGroups.ToList().Count; i++) 
         { 
          <tr id="[email protected]"> 
           <td> 
            <label>@Model.AvailableUserGroups.ToList()[i].Name</label> 
            @Html.HiddenFor(model => model.AvailableUserGroups.ToList()[i].Name) 
           </td> 
           <td></td> 
           <td> 
            @(Html.Kendo().NumericTextBoxFor(model => model.AvailableUserGroups.ToList()[i].StaffingMinimum) 
           .Min(0) 
           .Step(1) 
           .Format("#0.00") 
           .Decimals(0) 
           .Events(e => e.Change("UpdateStaffingMinimums"))) 

           </td> 
           <td><label> (0 = No minimum) </label></td> 
          </tr> 
         } 
        </table> 
       </div> 
      </fieldset> 
     </div> 

從UpdateStaffingMinimums方法我試圖從每個numerictextbox拉值創建時間:

function UpdateStaffingMinimums() 
{ 

    var assignmentTypeID = @Model.AssignmentTypeID; 
    var groupCount = @Model.AvailableUserGroups.Count(); 
    var sumHour = 0; 
    if ($("#HasMinimumStaffing").is(':checked')) 
    { 

     for (var i = 0; i < groupCount; i++) 
     { 
      var it = $("#updateStaffing_"+i);//.data("kendoNumericTextBox").value(); 
      console.log(it); 

     } 


    } 
} 

我按預期在控制檯日誌中獲取輸出;但是當我changeto:

var it = $("#updateStaffing_"+i).data("kendoNumericTextBox").value(); 

我得到這個錯誤:

Uncaught TypeError: Cannot read property 'value' of undefined 

我怎麼拉從數字文本框中的值?

+0

您需要在文本框元素本身上調用'.data(「kendoNumericTextBox」)',而不是它所在的行。 –

+0

如何從行中獲取對元素的引用?我完全用JQuery做新手-_- – user5120455

+1

我已經忘記了大部分Kendo的細節(你應該可以在他們的文檔中找到它們),但是像'$(「#updateStaffing _」+ i).find( '.k-numerictextbox')'似乎應該可以工作。 –

回答

0

我剛剛遇到類似的問題,獲取Kendo numerictextbox的值。我通過使用jQuery方法.val()解決了我的問題。在你的情況下,它將是:

var it = $("#updateStaffing_"+i).val(); 

我希望它有幫助。