2010-09-29 198 views
0

我有一個選擇列表,它的默認值(對於請選擇)爲0.這是由於支付處理系統和我無法控制的。我有一個add.Method指出如果select的值是「0」返回false,否則返回true。它工作正常,除了在提交和獲取錯誤之後將選擇的值更改爲其他內容時,錯誤消息仍然顯示。如何解決這個jQuery自定義驗證方法問題

的HTML:使用jquery.validate.js

$(document).ready(function() { 
     $.validator.addMethod(
      "SelectTechnology", 
      function(value, element) { 
       if ($("#singleTech").val() === '0'){ 
        return false; 
       } else return true; 
      }, 
      "Please Select a Technology" 
     ); 
     var validator = $("#SinglePmnt").validate({ 
      rules: { 
        technology: { 
         SelectTechnology: true 
        } 
      }, 
      errorElement: "span", 
      errorPlacement: function(error, element) { 
       error.appendTo(element.parent("td")); 
      } 
     }); 
    }); 

不能看到這個錯誤

<form action="" method="post" id="SinglePmnt"> 
    <td> 
    <select name="technology" class="select" id="singleTech"> 
     <option value="0" selected="selected">&nbsp;Please Select</option> 
     <option value="Interactive Brokers">&nbsp;Interactive Brokers</option> 
     <option value="MB Trading">&nbsp;MB Trading</option> 
     <option value="Patsystems">&nbsp;Patsystems</option> 
     <option value="PFG">&nbsp;PFG (Peregrine Financial)</option> 
     <option value="TD AMERITRADE">&nbsp;TD AMERITRADE</option> 
     <option value="Trading Technologies">&nbsp;Trading Technologies</option> 
     <option value="Vision Financial Markets">&nbsp;Vision Financial Markets</option> 
     <option value="Hosted">&nbsp;Zen-Fire</option> 
    </select> 
    </td> 
    <td>Single Payment of $995</td> 
    <td> 
     <input type="hidden" name="item_number" value="34"> 
     <input type="submit" value="" class="orderNow" /> 
    </td> 
</form> 

驗證規則,我感謝所有幫助。 謝謝

+0

這可能會有所幫助,如果你可以在jsfiddle.com上模擬這個。我很難確定錯誤是基於你所說的。 – treeface 2010-09-29 18:24:48

+0

似乎無法在js小提琴上添加驗證插件。基本上,當你選擇不同的值時,它不會清除錯誤信息。它應該這樣做,而不是添加錯誤消息。 http://jsfiddle.net/Yjt98/ – 2010-09-29 18:30:43

回答

0

嘗試強制驗證模糊事件。

$('#singleTech').click(function() { 
    $('#SinglePmnt').validate().element('#singleTech'); 
}); 

$('#singleTech').blur(function(){ 
    $('#SinglePmnt').validate().element('#singleTech'); 
}); 

jQuery change() on <select> and firefox

先前發佈的活鏈接似乎在IE工作,但不是Firefox瀏覽器。

+0

man我從來沒有見過IE的行爲,我會如何期待FF,反之亦然。我明白它在IE中的一個錯誤,但它是人!我給了這一槍 – 2010-09-29 23:23:21

1

當您使用jsfiddle(以其非正規的方式向iframe添加元素),您需要將JS直接包含在下面引用插件的HTML部分中。我似乎只用你的代碼已經得到它的工作:

http://jsfiddle.net/Yjt98/1/

這是你想要它做的,正確的呢?它似乎正在驗證與onchange事件的字段。讓我知道你是否期待着不同的行爲。

+0

男士謝謝!我沒有看到有什麼不同,但它的工作方式與預期的一樣,你修復了什麼? – 2010-09-29 19:21:25

+1

不是一回事!它只是與你提供的代碼一起工作。也許是......他們是我用過的互聯網粉塵的特殊品牌。 – treeface 2010-09-29 19:30:17

+0

實時鏈接http://www.kinetick.com/V3/purchase_own.php – 2010-09-29 19:52:53