2016-08-16 120 views
0

我是JQuery的初學者。現在,我正在嘗試將表單發回服務器。有一些「輸入」包含提交前應驗證的IP地址。現在我已經完成了一個很好的javascript函數。但現在我試圖將這個函數添加到jquery選擇。只是混淆瞭如何去做。嘗試使用javascript驗證IP地址

這是我的驗證JavaScript代碼。

function ValidateIPaddress(Ipfield) 
{ 
    IpAddr=Ipfield.value; 
    var ipformat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; 

    if(!IpAddr.match(ipformat)) 
     return true; 
    else 
     return false; 

} 

這是我現在如何實現這種驗證。

<input type= "text" name= "LocalIP" style= "margin-right:10px " value="192.168.1.193" class="ip" onfocusout="ValidateIPaddress(document.getElementById('LocalIp'))" id="LocalIp" >   Remote VIP Address :    
       <input type= "text" name= "RemoteVIPAddr" style= "margin-right:10px" value="234.5.6.7" class="ip" onfocusout="ValidateIPaddress(document.getElementById('RemoteIp'))" id="RemoteIp" > 
       Remote VIP Port :    
       <input type= "text" name= "RemoteVIPPort" style= "margin-right:10px" value="5004" class="ip" onfocusout="ValidatePort(document.getElementById('RemoteVIPPort'))" id="RemoteVIPPort"> 

現在我想用jquery選擇來總是檢查是否有一些無效的輸入。這是類似的東西,但具有我自己的設計功能。

$("input.ip:visible").filter(function() { return this.ValidateIPaddress === true }).addClass("invalid"); 

任何人都有想法回合呢?

+0

編寫一個返回'true'或'false'的驗證函數。然後你可以在'filter'函數和'ValidateIPAddress'中使用它。 – Barmar

+0

我更新了我的問題陳述 – Pawan

+0

這是我嘗試的,但它似乎不工作。 – Pawan

回答

2

您在過濾器函數中不調用ValidateIPAddress,只是測試DOM元素是否具有名爲ValidateIPAddress的非空屬性。它應該是:

$("input.ip:visible").filter(function() { 
    return ValidateIPAddress(this); 
}).addClass("invalid"); 
+0

現在工作正常!非常感謝!。 – Pawan