2012-03-19 23 views
35

क्या कोई मुझे यह जानने में मदद कर सकता है कि निम्न jQuery कोड क्यों काम नहीं करता है? मैं उपयोगकर्ता इनपुट से एक पूर्णांक वापस करना चाहता हूं।jQuery के साथ parseInt

var test = parseInt($("#testid")); 

धन्यवाद & अलविदा!

+5

कृपया परिभाषित "नहीं करता है काम नहीं करता। " आप क्या होने की उम्मीद करते हैं, और वास्तव में क्या होता है? –

उत्तर

104
var test = parseInt($("#testid").val(), 10); 

आपके पास यह बताने के लिए आप इनपुट आप लक्षित कर रहे हैं value चाहते हैं।

और साथ ही, हमेशा दूसरे तर्क (रेडिक्स) को parseInt पर प्रदान करें। यह बहुत चालाक होने की कोशिश करता है और अगर उपलब्ध नहीं कराया जाता है तो यह स्वतः पता लगाता है और अप्रत्याशित परिणामों का कारण बन सकता है।

10 प्रदान करना मानता है कि आप आधार 10 संख्या चाहते हैं।

+12

'parseInt' को कॉल करते समय आपको हमेशा रेडिक्स निर्दिष्ट करना चाहिए। –

+0

parseInt की संगतता के बारे में क्या? –

4
var test = parseInt($("#testid").val()); 
+2

'parseInt' को कॉल करते समय आपको हमेशा रेडिक्स निर्दिष्ट करना चाहिए। –

13

दो मुद्दों:

  1. आप parseInt में तत्व की jQuery आवरण गुजर रहे हैं, जो नहीं है तुम क्या चाहते, के रूप में parseInt उस पर toString फोन और वापस "[object Object]" मिल जाएगा। आपको इच्छित स्ट्रिंग प्राप्त करने के लिए val या text या कुछ (तत्व क्या है) के उपयोग की आवश्यकता है।

  2. आप parseInt क्या रेडिक्स (संख्या आधार) का उपयोग नहीं कर रहे हैं, जो आपको अजीब इनपुट के जोखिम में डाल देता है, जो आपको parseInt अनुमान लगाता है कि कौन सा रेडिक्स उपयोग करना है।

फिक्स करता है, तो तत्व एक फार्म क्षेत्र है:

//        vvvvv-- use val to get the value 
var test = parseInt($("#testid").val(), 10); 
//         ^^^^-- tell parseInt to use decimal (base 10) 

फिक्स करता है, तो तत्व कुछ और ही है और आप इसे भीतर पाठ का उपयोग करना चाहते हैं:

//        vvvvvv-- use text to get the text 
var test = parseInt($("#testid").text(), 10); 
//          ^^^^-- tell parseInt to use decimal (base 10) 
संबंधित मुद्दे