2012-05-25 22 views
18

मैं onChange या सभी form तत्वों के लिए एक समान घटना का उपयोग कैसे कर सकता हूं? मैं अलग-अलग फ़ील्ड के लिए onChange का उपयोग नहीं करना चाहता हूं।चेंज पर पूरे फॉर्म

+0

क्यों नहीं (बेशक, आप सभी चयन और textareas लिए एक समान काम करते हैं करने के लिए होगा): तो आप अलग से प्रत्येक इनपुट तत्व को ईवेंट हैंडलर संलग्न करना चाहते हैं? एचटीएमएल इवेंट में आप हर बार एक ही फ़ंक्शन को कॉल कर सकते हैं, इसलिए यह प्रतिलिपि बनाने की बात है, शायद 20 वर्ण और 1 फ़ंक्शन लिखना। – 11684

+1

[यह] (http://stackoverflow.com/questions/10546076/common-event-for-all-elements-on-form) मदद करता है? –

उत्तर

27

यदि आप jQuery का उपयोग कर रहे हैं, तो आप फॉर्म तत्व पर change ईवेंट का उपयोग कर सकते हैं, क्योंकि jQuery में ईवेंट बुलबुले हो जाता है।

$('#formId').change(function(){...}); 

यदि आप सादा जावास्क्रिप्ट का उपयोग कर रहे हैं, तो परिवर्तन ईवेंट बबल नहीं होता है (कम से कम क्रॉस ब्राउज़र नहीं)।

var inputs = document.getElementsByTagName("input"); 
for (i=0; i<inputs.length; i++){ 
    inputs[i].onchange = changeHandler; 
} 

+0

उत्कृष्ट जवाब। – Jake

+5

अब ऐसा लगता है कि सभी प्रमुख ब्राउज़र 'फॉर्म एक्सचेंज' का समर्थन करते हैं। – Mori

+0

@ मोरी - क्या आप अपनी टिप्पणी पर विस्तृत जानकारी दे सकते हैं, अब फॉर्म आदान-प्रदान के लिए क्या समर्थन है? –

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