2010-02-22 15 views
8

क्या कोई मेरी मदद कर सकता है कृपया ...Jquery - मैं इनपुट में एक कैरेक्टर कैसे डालूं

मैं एक वेब फॉर्म कर रहा हूं। मैं कुछ आईएनपीयूटी में डॉलर का चिह्न डालना चाहता हूं जिसमें नंबरफील्ड क्लास है। मैं उपयोगकर्ता की सामग्री डॉलर के चिह्न या पाठ्यक्रम का पालन करना चाहता हूं।

यह डॉलर के हस्ताक्षर ठीक है, लेकिन सामग्री इसके सामने समाप्त होती है।

$('input.numberfield').val('$'); 

नोट - डॉलर चिह्न की आवश्यकता है, क्योंकि इस वित्तीय डेटा है

दूसरे शब्दों में (कुछ भी नहीं jQuery के साथ क्या करना :)!) - '100' में किसी प्रकार और यह $ 100 'हो जाता है)

उत्तर

10

आप कुछ इस तरह कर सकते हैं:

$('input.numberfield').each(function() { 
    $(this).val('$' + $(this).val()); 
} 

1,4 में, अपने परिदृश्य के लिए एक सरल और अधिक पूर्ण समाधान:

$('input.numberfield').keyup(function() { 
    $(this).val(function(i,v) { 
    return '$' + v.replace('$',''); //remove exisiting, add back. 
    }); 
}); 
3

आप val() करने के लिए एक समारोह गुजरती हैं और अगर वहाँ पहले से ही एक नहीं है सामने एक $ जोड़ने के लिए रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं:

$("input.numberfield").val(function(i, val) { 
    return val.replace(/^\s*(?!\$)/, "$"); 
}); 

ऊपर regex एक दृश्य की जगह का मतलब मूल्य की शुरुआत में सफेद स्थान की नहीं है और उसके बाद डॉलर के चिह्न के साथ एक डॉलर का संकेत है। यह भी काम करेगा:

$("input.numberfield").val(function(i, val) { 
    return val.replace(/^\s*(\$)?/, "$"); 
}); 
+1

इन कार्यों मेरी INPUTSs में वास्तविक कोड इंजेक्शन कर रहे हैं! (सुनिश्चित नहीं है कि वहां क्या चल रहा है) बहुत तेज़ प्रतिक्रियाओं के लिए धन्यवाद। जो मैं चाहता था वह यह था कि, जब आप (इनपुट में कहीं भी) पर क्लिक करते हैं, तो कर्सर डॉलर के हस्ताक्षर के दाहिने तरफ कूद जाएगा। क्या यह संभव है? – swisstony

+0

@ जेरेड: ये इनपुट में वास्तविक कोड इंजेक्शन नहीं दे रहे हैं। 'Val()' के लिए लिंक किए गए दस्तावेज़ पढ़ें। वे फ़ंक्शन से इनपुट में ** वापसी मूल्य ** इंजेक्शन कर रहे हैं। यह प्रत्येक स्क्रिप्ट में 'प्रत्येक (फ़ंक्शन() {$ (यह) .val (...)}' अनिवार्य रूप से – cletus

+0

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

9

क्यों अपना जीवन जटिल बनाते हैं? बस HTML बाहर इनपुट तत्व की में डॉलर चिह्न डाल ...

<span style="border: inset 1px black; padding: 1px;"> 
    $<input style="border: none; padding: 0;"> 
</span> 
+2

शायद सबसे अच्छा समाधान। – Qtax

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