2011-12-20 7 views
13

मैं मेरा यहाँ करने के लिए कुछ इसी तरह के सवाल देखा है, लेकिन वे वास्तव में मुझे जवाब नहीं है ...

तो मैं कर रहा हूँ इस: (दस्तावेज़ तैयार समारोह के अंदर)

$("#dest").focusin(function() { 
    $("#dest").val($.trim($("#dest").val())); 
}); 

ideia जब एक input पर उपयोगकर्ता फोकस (पहले दृश्य आराम के लिए focusout का उपयोग करके जोड़ा) कहा जाता #dest उस पर सभी जगह वर्ण ट्रिम है।

अभी, कुछ भी नहीं हो रहा है। :(

आशा किसी ने मुझे एक सा यहाँ कर सकते हैं।

धन्यवाद!


यह एक कंप्यूटर से संबंधित समस्या है? मैं सभी टिप्पणीकर्ताओं और कोई भी द्वारा प्रदान की कोड परीक्षण किया है काम करता है। मैं ओएसएक्स (हिम तेंदुए) 10.6.8 के तहत फ़ायरफ़ॉक्स और सफारी का उपयोग कर रहा हूं और सफारी 10.8.2 (शेर) के तहत भी हूं और मुझे वही परिणाम मिल गए हैं ... ओएसएक्स समस्या? - सब ठीक है, मेरी आखिरी जांच करें संपादित करें!


अंतिम संपादित करें और फिल क्लेन

मेरे समस्या को गलत ढंग से jQuery के trim() समारोह उपयोग कर रहा था करने के लिए समाधान के लिए धन्यवाद ... trim()documentation करने के लिए इसे निम्नलिखित करता अनुसार:

$। ट्रिम() फ़ंक्शन सभी न्यूलाइन, रिक्त स्थान ( गैर-ब्रेकिंग रिक्त स्थान सहित) को हटा देता है, और आपूर्ति स्ट्रिंग की शुरुआत और अंत से टैब। यदि ये व्हाइटस्पेस वर्ण स्ट्रिंग के मध्य में होते हैं, तो वे संरक्षित होते हैं।

कल मैंने पिछले भाग को नहीं पढ़ा जहां यह कहता है from the beginning and end of the supplied string - सभी को क्षमा करें। :(

लकी और ऊपर ड्राइंग के बाद, @Phil क्लेन अपनी गलती समझ और मुझे एक समाधान के साथ मदद की:। @Phil क्लेन को

$(function() { 
    $("#dest").on("focus", function() { 
     var dest = $(this); 
     dest.val(dest.val().split(" ").join("")); 
    }); 
}); 

आप read more about the solution and see an example here कर सकते हैं

धन्यवाद और भी जो कोई इस पर मेरी मदद की;)

+1

शायद दृश्य आराम अन्य माध्यमों (सीएसएस पैडिंग?) – Thilo

+0

का उपयोग करके हासिल किया जा सकता है आपका कार्य बिल्कुल सही है, आपको केवल $ (function() {... code ...} –

+0

@ थिलो - सीएसएस के साथ इसे लपेटने की आवश्यकता है प्रत्येक 3 नंबरों को पैडिंग? – TCB13

उत्तर

15

नीचे दिया गया उदाहरण फोकस पर टेक्स्टबॉक्स की सामग्री से सभी रिक्त स्थान हटा देता है। इस विशेष उदाहरण के लिए jQuery 1 की आवश्यकता है।7+ के बाद से यह नया .on() API का उपयोग करता:

$(function() { 
    $("#dest").on("focus", function() { 
     var dest = $(this); 
     dest.val(dest.val().split(" ").join("")); 
    }); 
}); 

इस उदाहरण देखें: http://jsfiddle.net/RnZ5Y/5/

+1

के लिए है, आप शायद अपने उत्तर में कोड शामिल करना चाहें, jsfiddle हमेशा उपलब्ध नहीं है। –

+0

आप उदाहरण काम नहीं कर रहे हैं, फ़ायरफ़ॉक्स और सफारी के तहत परीक्षण किया। फिर भी धन्यवाद। – TCB13

+0

क्या काम नहीं कर रहा है? मैंने एक ही ब्राउज़र के साथ परीक्षण किया है। –

4

इन्हें आजमाएं: $.trim($("#dest").val());
अगर मैं गलत हूं तो मुझे सही करें !!

+0

.val() के लिए ठीक होना चाहिए एक टेक्स्ट फ़ील्ड। – Thilo

+0

आपके पास अंत में आवश्यकतानुसार एक और '' 'है, लेकिन' $ .trim ($ ("# d est ")। वैल());' अभी भी काम नहीं कर रहा है ... धन्यवाद – TCB13

+0

@ टीसीबी 13 अंत में ब्रैकेट $ .trim –

0

आप कोड के ऊपर से पहले पेज पूरी तरह से तैयार नहीं है क्रियान्वित तो यह बहुत संभावना है है तो कि #dest प्रतिसाद नहीं jquery द्वारा नहीं मिला और घटना सुनने के लिए कोड निष्पादित नहीं किया जाता है।

+0

कोड 'दस्तावेज़ तैयार' फ़ंक्शन में था, शुरुआत में यह नहीं कहकर खेद है। वैसे भी, मैं जंगली चला गया और इस के अंदर कोड डालने की कोशिश की: '$ (विंडो)। बाइंड (" लोड ", फ़ंक्शन() {' और अभी भी काम नहीं कर रहा है। धन्यवाद। – TCB13

0

यह फ़ंक्शन आपके परिदृश्य के लिए ठीक काम कर रहा है। यह चरित्र और नहीं के बीच केवल एक ही जगह ले जा रहा है की अनुमति देने के अधिक से अधिक 2 अंतरिक्ष के रूप में

$(function() { 
$("#dest").on("focusout", function() { 
    var dest = $(this); 
    dest.val(jQuery.trim(dest.val()));   
    dest.val(dest.val().replace(/[ ]{2,}/, ' ')); 
}); 
}); 
+0

यह मामला बहुत समय पहले बंद कर दिया गया है। और दस्तावेज़ों को पढ़ने में चूकने पर त्रुटि से पहले मैंने स्वीकार किया। – TCB13

2

$("#dest").val().trim(); कोशिश, यह मेरे लिए काम किया।

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