2013-05-15 49 views
0

在我的應用程序中,我們有一個頁面,可以在其中編輯用戶的詳細信息。其中一些信息經過驗證,以確保某些字段是必需的,而其他字段不是。當一個無效的條目被輸入,我們可以看到以下驗證消息:MVC3 JQuery驗證不適用於非英文語言環境

http://gyazo.com/693fefaa64693ebbddbe1484f9b20cb8

在英語語言環境中工作時,但該網站也運行在瑞典和隨後顯示的形式這是罰款:

http://gyazo.com/7a426e503dc7243b68cba0b41fe7509d

到目前爲止好,但是當我們與空字段提交表單,確認被旁路,條目與以下消息被紅牌罰下:

http://gyazo.com/4bd7922485e0df603212583aea8bdf8c

我相信「數據更新」。對我而言,我無法確定這個問題的原因。請參閱下面的形式在頁面的腳本驗證:

$("#edit_owner_form").validate({ 
     onfocusout: function(element) 
     { 
      //do nothing on focus out 
     }, 
     onkeyup:function() 
     { 
      //do nothing on keyup 
     }, 
     submitHandler: function (form) { 
     return true; 
     }, 
     rules: { 
      Website: { url: true }, 
      TransactionRetentionPeriodInDays: { number: true }, 
      Company: { required: true }, 
      City: { required: true }, 
      Country: { required: true }, 
      PhoneNumber: { required: true } 
     }, 
     messages: { 
      Company: { required: COMPANY_NAME_REQUIRED }, 
      City: { required: TOWN_CITY_REQUIRED }, 
      Country: { required: COUNTRY_REQUIRED }, 
      PhoneNumber: { required: PHONENUMBER_REQUIRED }, 
      Website: { url: WEBSITE_REQUIRED } 
     }, 
     errorPlacement: function (error, element) { 
      error.appendTo($('#errorbox')); 
      $("#errorbox label").css("color","#B94A48;"); 
      $("#ownerdetail").show(); 
      }, 

    }); 

所有消息都被撿正確的文化,但在任何時候,顯示預定義變量。我也將提供形式本身以供參考:

<form id="edit_owner_form"> 
<div class="container" id="ownerDetails"> 
    <input type="hidden" name="OwnerId" id="OwnerId" value="@Model.OwnerId" /> 
    <table> 
     <tr style="vertical-align: top;"> 
      <td style="width: 300px; vertical-align: top;"> 
       <div id="left" style="vertical-align: top; clear: both; height: 470px;"> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.CompanyName&nbsp;<span class="reqd-field">*</span> 
        </div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="Company" id="Company" value="@Model.Company" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.Street</div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="Street" id="Street" value="@Model.Street" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.PostalZip</div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="PostalZIP" id="PostalZIP" value="@Model.PostalZIP" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.PhoneNumber&nbsp;<span class="reqd-field">*</span></div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="PhoneNumber" id="PhoneNumber" value="@Model.PhoneNumber" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.Website</div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="Website" id="Website" value="@Model.Website" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.GLN</div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="GLN" id="GLN" style="width: 260px;" value="@Model.GLN" /></div> 
        <br /> 
       </div> 
      </td> 
      <td style="width: 300px; vertical-align: top;"> 
       <div id="right" style="vertical-align: top; clear: both; height: 470px;"> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.Number</div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="Number" id="Number" value="@Model.Number" style="width:260px;" /></div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.TownCity&nbsp;<span class="reqd-field">*</span></div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="City" id="City" value="@Model.City" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.Country&nbsp;<span class="reqd-field">*</span></div> 
        <br /> 
        <div class="editor-field"> 
         @Html.DropDownListFor(model => model.Country, Model.AvailableCountries != null ? Model.AvailableCountries : new SelectList(new[] { "" }), new { id = "Country", name = "Country", style = "width:260px;height:30px !important;" }) 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.FaxNumber</div> 
        <br /> 
        <div class="editor-field"> 
         <input type="text" name="FaxNumber" id="FaxNumber" value="@Model.FaxNumber" style="width:260px;" /> 
        </div> 
        <br /> 
        <div class="editor-label" style="font-weight: bold;"> 
         @Language.Currency</div> 
        <br /> 
        <div class="editor-field"> 
         @Html.DropDownListFor(model => model.CurrencyCode_CurrencyCodeId, Model.CurrencyCodes != null ? Model.CurrencyCodes : new SelectList(new[] { "" }), new { id = "CurrencyCode_Code", style = "width:260px;height:30px !important;" }) 
        </div> 
       </div> 
      </td> 
     </tr> 
    </table> 
</div> 
</form> 

有什麼我與不同文化背景的驗證工作時失蹤?我很感激任何和所有的迴應,我真的很難過!提前致謝。

+0

您使用的是Validation HtmlHelpers嗎? –

+0

我不相信我們出於某種原因在網站的這一部分。所有的代碼都和我發佈的完全一樣。經過一些調試後,我可以看到,當我們在瑞典語中時,'$(「#edit_owner_form」)。validate'根本沒有被擊中。任何關於爲什麼會因文化而停止的建議? –

+0

實際上,'$(document).ready'中的JavaScript沒有出現在瑞典語中,但有多奇怪。 –

回答

0

好的,最後它非常簡單,只是瑞典字符在代碼中呈現的方式。一些特殊字符一定會干擾JavaScript並阻止其運行。只是追查麻煩提取物的問題。乾杯!

+0

瞧,這個問題是由於一個簡單的返回馬車在一個本地化的字符串中引起的,這個字符串被用來引發JavaScript錯誤。有些事情真的可以偷偷溜走。 –

相關問題