2013-08-20 14 views
0

我需要在我的ASP MVC3視圖中驗證一些字段,並試圖使用jQuery來這樣做。 jQuery .val()方法很好地從輸入字段中提取accountNumber,refNumberownerMaster,但agentId字段的值始終爲"",而不管任何內容。jQuery .val()沒有從一個輸入中獲取值,其餘的都是罰款

我已經看遍了我的代碼中的錯字,並沒有找到它。希望另一雙眼睛能夠做到這一點。

僅供參考 - 如果我改變$('#AgentId').val().val()下面.hide()隱藏方法作品和現場消失了,這意味着我必須選擇正確鍵入。

jQuery的

function ValidateFields(transactionType) { 
    var msg = ""; 
    var refNumber = $('#RefNumber').val(); 
    var ownerMaster = $('#OwnerMasterAgentId').val(); 
    var accountNumber = $('#AccountNumber').val(); 
    var agentId = $('#AgentId').val(); //When the agentId variable an selector + val() are 
             //evaluated here both have a value of "" 

ASP MVC剃刀

   <div class="M-editor-label"> 
        @Html.LabelFor(model => model.RefNumber) 
        <span class="alwaysReq"> @Html.Raw("*")</span> 
       </div> 
       <div class="M-editor-field"> 
        @Html.TextBoxFor(model => model.RefNumber, new { maxlength = 9, @class = "staticData" }) 
       </div> 
       <div class="M-editor-label"> 
        @Html.LabelFor(model => model.OwnerMasterAgentId) 
        <span class="req">@Html.Raw("*")</span> 
       </div> 
       <div class="M-editor-field"> 
        @Html.TextBoxFor(model => model.OwnerMasterAgentId, new { maxlength = 8, @class="staticData" }) 
       </div> 
        <div class="M-editor-label"> 
         @Html.LabelFor(model => model.AccountNumber) 
         <span class="req">@Html.Raw("*")</span> 
        </div> 
        <div class="M-editor-field"> 
         @Html.TextBoxFor(model => model.AccountNumber, new { maxlength = 17 }) 
        </div> 
        <div class="M-editor-label"> 
         @Html.LabelFor(model => model.AgentId) 
         <span class="req">@Html.Raw("*")</span> 
        </div> 
        <div class="M-editor-field"> 
         @Html.TextBoxFor(model => model.AgentId, new { maxlength = 8 }) 
        </div> 

HTML

   <div class="M-editor-label"> 
        <label for="RefNumber">Reference Number</label> 
        <span class="alwaysReq" style="display: inline;"> *</span> 
       </div> 
       <div class="M-editor-field"> 
        <input class="staticData" id="RefNumber" maxlength="9" name="RefNumber" type="text" value=""> 
       </div> 
       <div class="M-editor-label"> 
        <label for="OwnerMasterAgentId">Owner Master Agent Id</label> 
        <span class="req" style="display: inline;">*</span> 
       </div> 
       <div class="M-editor-field"> 
        <input class="staticData" id="OwnerMasterAgentId" maxlength="8" name="OwnerMasterAgentId" type="text" value=""> 
       </div 
        <div class="M-editor-label"> 
         <label for="AccountNumber">Account Number</label> 
         <span class="req" style="display: inline;">*</span> 
        </div> 
        <div class="M-editor-field"> 
         <input id="AccountNumber" maxlength="17" name="AccountNumber" type="text" value=""> 
        </div> 
        <div class="M-validator-field"> 
         <span class="field-validation-valid" data-valmsg-for="AccountNumber" data-valmsg-replace="true" style="display: none;"></span> 
        </div> 
        <div class="M-editor-label"> 
         <label for="AgentId">Agent ID</label> 
         <span class="req" style="display: inline;">*</span> 
        </div> 
        <div class="M-editor-field"> 
         <input id="AgentId" maxlength="8" name="AgentId" type="text" value=""> 
        </div> 
+0

何時/如何調用'ValidateFields'函數?你可以在http://jsfiddle.net上重現這個問題嗎? – undefined

+0

當您在控制檯上鍵入選擇器'$('#AgentId')'時,控制檯返回輸入? –

+0

第一個調試步驟,使用控制檯執行'$('#AgentId')。length'來查看您是否意外在頁面上多次使用該ID。 –

回答

0

我看不出問題,

  1. ,但你有沒有另一個HTML元素具有的ID = AGENTID在烏拉圭回合頁
  2. 當您更改字段的文本它在螢火蟲改變

其實你不必創建UR自己的驗證,您可以使用數據標註驗證 提供poth服務器端和客戶端驗證

-1

試試這個

var agentId=$('#@Html.FieldIdFor(model => model.AgentId)').val(); 
相關問題