2013-03-11 5 views
6

मेरे पास एक पृष्ठ में नीचे दिया गया कोड है, यदि दो टेक्स्टफील्ड में से कोई एक फ़ंक्शन बदलता है तो दोनों के मानों के साथ कॉल किया जा रहा है।
कोड पूरी तरह से ठीक काम करता है, लेकिन दक्षता के हित में मैं सोच रहा था कि क्या मैं इसे कोड के एक ब्लॉक में उबाल सकता हूं।दो इनपुटों में से एक के परिवर्तन पर एक कॉल

$('#popfrom').change(function(){ 
    var popfrom = $('#popfrom').val(); 
    var poptill = $('#poptill').val(); 

    defineDate(popfrom, poptill); 
}); 

$('#poptill').change(function(){ 
    var popfrom = $('#popfrom').val(); 
    var poptill = $('#poptill').val(); 

    defineDate(popfrom, poptill); 
}); 
+0

का उपयोग कर उनका चयन आप आदानों एक ही कक्षा दे सकता है और उसके बाद सिर्फ $ फोन (। someClass ')। – Pete

+0

बदलें मुझे यह उल्लेख करना चाहिए था कि मुझे पता है कि मैं उन्हें कक्षा के माध्यम से "गठबंधन" कर सकता हूं लेकिन वह आईडी का उपयोग करना चाहता हूं। – nhalink

उत्तर

12

JQuery की अनुमति देता है एकाधिक चयनकर्ताओं, अल्पविराम से अलग:

$('#popfrom, #poptill').change(function(){ ... 

आप पाते हैं आप एक से अधिक तत्वों के साथ काम करने की जरूरत है, यह बजाय एक वर्ग के नाम का उपयोग करने के लिए अक्सर आसान है। अपने इनपुट में "पॉपफील्ड" की एक श्रेणी जोड़ें और आप बस उपयोग कर सकते हैं:

$('.popfields').change(function(){ ... 
+0

offcourse ... मैं कैसे भूल सकता है!? दो तत्वों में पहले से ही आईडी है जिसका मैं एक बड़ी लिपि में उपयोग करता हूं और मैं उन्हें पहचानने योग्य रखना चाहता हूं, इसलिए मैं अल्पविराम से अलग समाधान का उपयोग करूंगा। – nhalink

4

उन्हें एक ही कक्षा में जोड़ें, फिर निष्पादित करें।

$('.popClass').change(function(){ 
    var popfrom = $('#popfrom').val(); 
    var poptill = $('#poptill').val(); 

    defineDate(popfrom, poptill); 
}); 
0

'दोनों क्षेत्रों के लिए एक ही कक्षा जोड़ें और jQuery' .selector '

$('.classOfTheTextFiled').change(function(){ .... 

:)

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