2010-07-06 12 views
13

क्या JQuery के लिए कोई अच्छा आईपी मास्क प्लगइन है? मैंने Masked Input Plugin की कोशिश की है लेकिन यह 12 अंकों से कम के साथ आईपी पते नहीं है। फिर मैंने meioMask की कोशिश की है और यह 12 अंकों से कम के साथ काम नहीं करता है। कोई सुझाव?मुझे एक JQuery आईपी मास्क प्लगइन की आवश्यकता है

+0

आपका क्या मतलब है "12 अंकों से कम के साथ काम नहीं करता" ?? क्या आप मुझे कुछ उदाहरण दिखा सकते हैं ??? – Kai

+0

10.10.10.10 <12 अंक – HyderA

+0

आईपीवी 6 मुझे लगता है कि यह मुद्दा है इसलिए यह आईपीवी 4 के साथ काम नहीं करता है? कृपया कुछ उदाहरण/कोड पोस्ट करें जो आप जो कर रहे हैं उसकी मदद के लिए कुछ भी पोस्ट करें, आपको उचित प्रश्न के साथ उचित उत्तर नहीं मिल सकता है। तो मैं बस इतना कह सकता हूं 42. – Sphvn

उत्तर

10

आपको इस पोस्ट के अपने जवाब पा सकते हैं:

http://mlntn.com/2009/12/30/jquery-ip-address-plugin/

और आप के लिए एक डेमो कोशिश करने के लिए

http://mlntn.com/demos/jquery-ipaddress/

+0

कोई प्रलेखन नहीं। कोशिश करने और काम करने के लिए यह दर्द है। उदाहरण के लिए मूल्यों को पुनर्प्राप्त करना। – HyderA

+0

मृत लिंक ... कोई 404 लेकिन खाली पृष्ठ। – user9645

+0

इस दौरान इसे आज़माएं: http://web.archive.org/web/20140219174935/http://mlntn.com/2009/12/30/jquery-ip-address-plugin/ – Philippe

1

नकाबपोश इनपुट प्लगइन से काम कर रहे उदाहरण -
http://digitalbush.com/projects/masked-input-plugin/

12 अक्षरों से कम कर रहे हैं:

jQuery(function($){ 
    $("#date").mask("99/99/9999"); 
    $("#phone").mask("(999) 999-9999"); 
    $("#tin").mask("99-9999999"); 
    $("#ssn").mask("999-99-9999"); 
}); 

वे काम कर रहे है उदाहरण जो पूरी तरह से चल रहे हैं?

आपकी समस्या क्या है और क्या आप अब गहराई से जानकारी पोस्ट कर सकते हैं?

jQuery(function($){ 
    $("#MyElementID").mask("10.0.0.0"); //Does this not work? 
}); 

क्या आप प्रत्येक क्षेत्र में 1-3 अंकों के लिए काउंटर करने का प्रयास कर रहे हैं?

उदाहरण के लिए सक्षम होने के लिए।

$("#MyElementID").mask("1.0.0.0"); //this 
$("#MyElementID").mask("10.10.10.10"); //or this 
$("#MyElementID").mask("100.100.100.100"); //or this 

आप .. और वर्णनात्मक आप मदद कर सकते हैं हो सकता है, तो

आप उस के बाद कर रहे हैं आप, इनपुट बॉक्स वॉटरमार्किंग के बजाय एक मुखौटा लागू करके कुछ सरल कोशिश कर सकते हैं ताकि आप संख्या भिन्न हो सकते हैं कि दर्ज किया जा सकता है। देखें Jquery-वॉटरमार्क - http://code.google.com/p/jquery-watermark/

+1

हां, मुझे प्रत्येक फ़ील्ड में 1-3 अंकों की आवश्यकता है, अंकों की कोई विशिष्ट संख्या नहीं है। और मुझे यकीन नहीं है कि वॉटरमार्क प्लगइन कैसे मदद करेगा। – HyderA

+0

कोई कृपया इसे कम करने के कारण बताएं? – Sphvn

+0

मैंने डाउनवोट नहीं किया, लेकिन मुझे यह जानने की जरूरत है कि कैसे 1-3 अंक मास्किंग की अनुमति दें। – HyderA

1

मैं fou nd इस और आप नहींं प्लगइन्स

function fnValidateIPAddress(ipaddr) { 
    //Remember, this function will validate only Class C IP. 
    //change to other IP Classes as you need 
    ipaddr = ipaddr.replace(/\s/g, "") //remove spaces for checking 
    var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; //regex. check for digits and in 
              //all 4 quadrants of the IP 
    if (re.test(ipaddr)) { 
     //split into units with dots "." 
     var parts = ipaddr.split("."); 
     //if the first unit/quadrant of the IP is zero 
     if (parseInt(parseFloat(parts[0])) == 0) { 
      return false; 
     } 
     //if the fourth unit/quadrant of the IP is zero 
     if (parseInt(parseFloat(parts[3])) == 0) { 
      return false; 
     } 
     //if any part is greater than 255 
     for (var i=0; i<parts.length; i++) { 
      if (parseInt(parseFloat(parts[i])) > 255){ 
       return false; 
      } 
     } 
     return true; 
    } else { 
     return false; 
    } 
} 
3

यह किसी के लिए एक पुराने पोस्ट तथापि जो दस्तावेज या तरीकों के बारे में चिंता करने की एक bulking प्लगइन का उपयोग कर, या बिना, कई आदानों में हेरफेर करने के लिए एक आसान तरीका चाहता है स्थापित करने की आवश्यकता , यहां एक साधारण श्रेणी चयनकर्ता विधि है जो यह आपके लिए सब कुछ करती है। इसका आईपीवी 4 केवल इसलिए लगता है जैसे आपकी ज़रूरतें बहुत सरल हैं।

//jQuery 1.9+ selector pattern, 
//To get working with an older version 
//Swap first line to $(".ip").bind('keydown',function(e){ 
//To get working with jQuery versions support .live 
//$(".ip").live('keydown',function(e){ 
$(document).on('keydown',".ip",function(e){ 
    var code = e.keyCode || e.which; 
    var sections = $(this).val().split('.'); 
    //Only check last section! 
    var isInt  = ((code >= 48 && code <= 57) || (code >= 96 && code <= 105)); 
    var hasSlash = $(this).val().indexOf("/") == -1; 
    if(isInt){ 
     if(hasSlash){ 
      if(sections.length < 4){ 
       //We can add another octet 
       var val = parseInt(sections[sections.length-1]+String.fromCharCode(code)); 
       if(val > 255 || parseInt(sections[sections.length-1]) == 0){ 
        $(this).val($(this).val()+"."+String.fromCharCode(code)); 
        return false; 
       } 
       return true; 
      } else { 
       //Lets prevent string manipulations, our string is long enough 
       var val = parseInt(sections[sections.length-1]+String.fromCharCode(code)); 
       if(val > 255 || parseInt(sections[sections.length-1]) == 0){ 
        return false; 
       } 
       return true; 
      } 
     } else { 
      var cidr_split = $(this).val().split('/'); 
      var target_val = parseInt(cidr_split[1]+String.fromCharCode(code)); 
      return (target_val < 33 && target_val.toString().length < 3 && parseInt(cidr_split[1]) != 0); 
     } 
    } else if(code == 191){ 
     //CIDR Slash 
     return ($(this).val().indexOf("/") == -1); 
    } else if(code == 8 || code == 46 || code == 9 || code == 13){ 
     return true; 
    } 
    return false 
}); 

को समझने के लिए इस टूट के लिए, आपको वर्ग "आईपी" अपने इनपुट में बाँध, यह स्वतः ही बाकी संभाल लेंगे: डी इस संस्करण CIDR संकेतन का समर्थन करता है (जैसे: 192.168.1.1/16) यह केवल अनुमति देता है मान्य पतों के इनपुट हो सकता है, को दूर करने के सीआईडीआर ढंग से काम आप निम्नलिखित स्निपेट (परीक्षण नहीं)

//jQuery 1.9+ selector pattern, 
//To get working with an older version 
//Swap first line to $(".ip").bind('keydown',function(e){ 
//To get working with jQuery versions support .live 
//$(".ip").live('keydown',function(e){ 
$(document).on('keydown',".ip",function(e){ 
    var code = e.keyCode || e.which; 
    var sections = $(this).val().split('.'); 
    //Only check last section! 
    var isInt  = ((code >= 48 && code <= 57) || (code >= 96 && code <= 105)); 
    if(isInt){ 
     if(sections.length < 4){ 
      //We can add another octet 
      var val = parseInt(sections[sections.length-1]+String.fromCharCode(code)); 
      if(val > 255 || parseInt(sections[sections.length-1]) == 0){ 
       $(this).val($(this).val()+"."+String.fromCharCode(code)); 
       return false; 
      } 
      return true; 
     } else { 
      //Lets prevent string manipulations, our string is long enough 
      var val = parseInt(sections[sections.length-1]+String.fromCharCode(code)); 
      if(val > 255 || parseInt(sections[sections.length-1]) == 0){ 
       return false; 
      } 
      return true; 
     } 
    } else if(code == 8 || code == 46 || code == 9 || code == 13){ 
     return true; 
    } 
    return false 
}); 

मैं दो उद्देश्यों 1) के लिए यहाँ कोड प्रदान कर रहा हूँ का उपयोग यह कुछ मुझे विश्वास जरूरतों को पूरा करने के लिए, 2 है उपयोग कर सकते हैं) मुझे दुनिया में योगदान करने की उम्मीद है

स्निपेट डी नहीं है यदि आपको आईपीवी 6 समर्थन की आवश्यकता है, तो अलग-अलग खींचने के लिए हस्ताक्षर किए गए हैं, न ही आईपीवी 6 का समर्थन करें, कृपया https://code.google.com/p/jquery-input-ip-address-control/ देखें जो किसी भी सुझाव दिया गया है।

लेकिन जटिल वाक्यविन्यास से अलग, यह ऑक्टेट को अलग करता है, और केवल "सक्रिय" ऑक्टेट की जांच करता है, यह किसी भी वैध पते (0.0.0.0, 0.0.0.0/0, ect) का समर्थन करता है, इसलिए बुद्धिमानी से उपयोग करें अमान्य इनपुट को रोकने के अलावा किसी भी फैंसी जांच करें। यदि आप चेकर की तलाश में हैं, तो कृपया आईपी एड्रेस वैलिडेटर के बारे में सैंटियागो एलिविरा रामिरेज़ की पोस्ट देखें।

संबंधित मुद्दे