2011-03-12 13 views
6

मैं jquery में प्लेसहोल्डर फ़ंक्शन पर काम कर रहा हूं। अभी, मैं सिर्फ फॉर्म तत्व को अपना मूल्य बदलना चाहता हूं जो इसके प्लेसहोल्डर है। मैंने निम्नलिखित कोड का प्रयास किया:

$('input:text').val($(this).attr('placeholder')); 

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

+1

'this' केवल कार्यों के भीतर अलग हो सकता है, एक समारोह के बिना किसी बहस के दौरान नहीं। यहां, 'यह' उसी कार्य में कोड की इस पंक्ति के बाहर उपयोग किए गए 'इस' जैसा ही है। – pimvdb

उत्तर

8
$('input:text').val(function() { 
    return $(this).attr('placeholder'); 
}); 

या:

$('input:text').attr('value', function() { 
    return $(this).attr('placeholder'); 
}); 

और यहाँ एक live demo है।

5

इनमें से अधिकतर सेटर jQuery फ़ंक्शंस फ़ंक्शन निर्दिष्ट करने का एक तरीका प्रदान करते हैं जिसका रिटर्न मान उपयोग किया जाएगा। यह $(this) का उपयोग करने का एक तरीका है।

$('input:text').val(function() { 
    return $(this).attr('placeholder'); 
}); 

jQuery val() Reference

+0

आपके पास मज़ेदार नाम कापा है: डी –

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

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