2010-03-11 20 views
10

मैं अपने पृष्ठ पर इनपुट के लिए Jeditable (केकेपीएचपी पर पोस्टिंग) का उपयोग कर रहा हूं। मैं चाहता हूं कि उपयोगकर्ता केवल जेडटेबल फ़ील्ड में संख्याएं भरें, इसलिए मेरा विचार jQuery validation plugin का उपयोग करने के लिए केवल तभी उपयोग किया जाता है जब मैं केवल संख्या का उपयोग करता हूं, मैं पहले से ही अपनी साइट के अन्य हिस्सों में इसका उपयोग करता हूं।जेडटेबल फ़ील्ड मान्य करें

जेडटेबल गतिशील रूप से एक इनपुट के साथ एक फॉर्म बनाता है जब आप div पर क्लिक करते हैं, इसलिए ऐसा लगता है कि Jquery को बाध्य करने के लिए मान्य नहीं है और यह सामान्य के रूप में काम नहीं करता है।

मैं जेडटेबल के माध्यम से फॉर्म का वर्ग नाम सेट करने में सक्षम हूं (इसमें केवल एक वर्ग एट्रिब्यूट है), बनाए गए इनपुट में केवल एक नाम विशेषता है जो "नाम" के लिए डिफ़ॉल्ट है।

मेरे सवालों का:

  • यह एक अच्छी तरह से केवल संख्या की आवश्यकता के लिए है?
  • यदि हां, तो इसे Jquery मान्य करने के लिए कैसे करें
  • यदि नहीं, तो बेहतर समाधान क्या होगा?

अग्रिम धन्यवाद, और मैं कोई जवाब मैं मिल सकता है के लिए तत्पर हैं;)

उत्तर

13

आप अपने फॉर्म के फ़ील्ड को सत्यापित करने के लिए सीधे जेडएबल में jQuery सत्यापन प्लगइन का उपयोग कर सकते हैं

$('.edit').editable(your_url, { 
    onsubmit: function(settings, td) { 
     var input = $(td).find('input'); 
     $(this).validate({ 
      rules: { 
       'nameofinput': { 
        number: true 
       } 
      }, 
      messages: { 
       'actionItemEntity.name': { 
        number: 'Only numbers are allowed' 

       } 

      } 
     }); 

     return ($(this).valid()); 
    } 
}); 
+0

आप इनपुट घोषित करते हैं लेकिन इसका उपयोग नहीं कर रहा है, क्या बात है? –

3

आप Jeditable में ऑनसबमिट घटना का उपयोग और देखें कि क्या इनपुट केवल संख्या है सकते हैं। यह एक उदाहरण मात्र है, मैं इसे की कोशिश नहीं की:

function isNumeric(value) { 
    if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false; 
    return true; 
} 

$('.edit').editable(your_url, { 
    onsubmit: function(settings, original) { 
     if (isNumeric(original)) { 
      return true; 
     } else { 
      //display your message 
      return false; 
     } 
    } 
}); 
+0

धन्यवाद, मैं वास्तव में यह परीक्षण करने के लिए समय नहीं था, में मेरा पहला प्रयास करता है कि यह काम नहीं करता (हमेशा झूठा लौटा) लेकिन जैसा कि कहा गया था, मेरे पास वास्तव में सही तरीके से प्रयास करने का समय नहीं था, फिर भी आपके जवाब के लिए बहुत धन्यवाद! :) – JanWillem

+0

ऐसा लगता है कि Jeditable प्रस्तुत करता है, तो क्या आप फिर भी अवास्तविक लौटाते: http://markmail.org/message/cgagaclwtk6bt4yv कोड परिवर्तन यूआरएल में उल्लेख किया है अब उपलब्ध नहीं है :(मुझे आशा है कि किसी को प्राप्त करने के लिए मेरी मदद कर सकते यह काम कर रहा है! – JanWillem

+0

यह jEditable के वर्तमान संस्करण में काम करता है। –

10

इस कोड को मेरे लिए काम किया

function isNumeric(value) { 
    if (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)) return false; 
    return true; 
} 

$('.edit').editable(your_url, { 
    onsubmit: function(settings, td) { 
     var input = $(td).find('input'); 
     var original = input.val(); 
     if (isNumeric(original)) { 
      console.log("Validation correct"); 
      return true; 
     } else { 
      console.log("Validation failed. Ignoring"); 
      input.css('background-color','#c00').css('color','#fff'); 
      return false; 
     } 
    } 
}); 
+0

ओह। कंसोल.लॉग * जैसे * – jonasespelita

+0

$ (td) .find ('input') का उपयोग करना; क्या केवल तालिका डेटा के लिए आवश्यक है? – shennyL

0

मेरी प्रोजेक्ट के लिए मैंने फ़ंक्शन नाम को बदल दिया है स्वीकार्य है क्योंकि मैं ब्रैकेट, डैश, डॉट्स को फोन नंबर का हिस्सा बनने की अनुमति देता हूं।

function isAcceptable(value) { 
    if (value == null || !value.toString().match(/^[-+]?\d*\.?[\d\s().-]+$/)) return false; 
    return true; 
} 
-1

ओपन jquery.editable.js और पाते हैं: onedit समारोह

/* setup some functions */ 
     var onedit = settings.onedit || function() { }; 

और ऐसा कुछ की तरह:

$('.edit').editable(your_url, { 
    onedit:function(){ 
      alert("original value"+$(this).text()); 
    }, 
});