2012-03-02 85 views
0

今天是我第一次嘗試使用jQuery Validation插件。我的表單用於驗證GPS座標。jQuery Validation插件沒有捕獲錯誤

這裏是我的規則和消息:

$(document).ready(function() { 
    // validate form when called 
    var validator =$("#box-registration").validate({ 
     rules: { 
      latitude: { 
       min: 0, 
       max: 90, 
       number: true 
       }, 

      longitude { 
       min: 0, 
       max: 180, 
       number: true 
       }, 

      geo_dms { 
       min: 0, 
       max: 59, 
       number: true 
       } 
      }, 
     messages: { 
      latitude: "Latitude must be between 0 and 90", 
      longitude: "Longitude must be between 0 and 180", 
      geo_dms: "Degree minutes and seconds must be between 0 and 59" 
      } 
     }); 
    }); 

這裏是我試圖驗證表單的一部分。我試圖應用驗證的元素的「地球LAT-DD」和「地理LON-DD」:

 <div id="geo-format-dd"> 
      <dl> 
      <dt><label class="labelstandard">Latitude</label></dt> 
      **<dd><input id="geo-lat-dd" name="geo-lat-dd" type="text" class="latitude textinput100 nonewrow"/></dd>** 
      <dd class="nonewrow"> 
       <input type="radio" name="latDD" id="latDDN" checked="checked" value="N" class="nonewrow" /><label class="nonewrow" for="latDDN">N</label> 
       <input type="radio" name="latDD" id="latDDS" value="S" class="nonewrow" /><label class="nonewrow" for="latDDS">S</label> 
      </dd> 
      </dl> 

      <dl class="newrow"> 
      <dt><label class="labelstandard">Longitude</label></dt> 
      **<dd><input id="geo-lon-dd" name="geo-lon-dd" type="text" class="longitude textinput100 nonewrow" /></dd>** 
      <dd class="nonewrow"> 
       <input type="radio" name="lonDD" id="latDDW" checked="checked" value="W" class="nonewrow" /><label class="nonewrow" for="lonDDW">W</label> 
      </dd> 
      </dl> 
     </div> 

兩個元素有類「緯度」和「經度」應用,而我的驗證插件規則包括那些類(也有度數分秒的字段,所以我試圖重用類而不是使用ID)。

當我使用字段中的值9999驗證表單時,不會顯示錯誤消息。使用Firebug,我已經完成並確認驗證代碼正在運行,但它不會返回任何異常。

在規則,我也試圖把一個點的選擇,墜毀在頁面的前面,還與一段引號引起的,像「.latitude」

可有人請點我在正確的方向弄清楚我做錯了什麼?

回答

1

有幾個問題:

  1. 要調用validate上並不在你的樣品標記存在選擇#box-registration
  2. 您的rules選項應該在表單元素名稱上鍵入。文件不清楚;他們似乎暗示規則可以自動匹配類名,但我認爲這不能按照您嘗試的方式完成。
  3. 您的JavaScript有一些語法錯誤。特別是,您在規則對象中缺少冒號。

我創建了this Fiddle以顯示使用這些更正的驗證。

+0

感謝您的意見。我猜最近12小時工作的時間太多了,可能會犯一些像缺少冒號的錯誤,並且不會發布我的代碼的相關部分(#box-registration在我的文件中存在)。我會嘗試將您的建議整合到我的代碼中。 – 2012-03-05 16:05:45

+0

我能夠測試你的建議,它的工作原理。謝謝。有趣的是,我發現這些消息可以通過CSS類來分配,但正如你所說的,這些規則似乎需要通過元素ID來分配。 – 2012-03-06 15:36:58

+0

修改我以前的評論 - 它實際上*不*通過CSS類顯示我的消息。只是我的自定義消息非常接近默認值,我沒有注意到它們之間的差異。 – 2012-03-14 18:16:47