2011-03-13 27 views
27

मेरे पास एक छिपी हुई इनपुट के मूल्य को सेट करने वाला हेला समय है।JQuery: छिपे हुए इनपुट फ़ील्ड का मान बदलें

मैं एचटीएमएल को विकल्प टैग के बीच से छिपे हुए क्षेत्र में पास करना चाहता हूं- अंत में यह वर्डप्रेस 'wp_list_dropdowns() से पेज शीर्षक होगा। मुझे यह पाठ ठीक से वापस कर रहा है, और मेरे परिवर्तन की घटना पर यह सही ढंग से कुछ सीएसएस जोड़ता है (स्पष्ट रूप से एक छिपे हुए क्षेत्र पर अनियंत्रित, लेकिन मैं यह निर्धारित करने की कोशिश कर रहा था कि चीजें कहां टूट रही हैं)। काम करता है अगर मैं एक पाठ इनपुट में छिपा इनपुट बदलता हूं। मैंने एसओ पर कई स्थानों पर देखा है कि यह संभव है, (एक छिपे हुए इनपुट के मूल्य को बदलना), लेकिन कुछ मुझे अब पकड़ रहा है और मुझे जवाब नहीं दिखाई दे रहा है।

जावास्क्रिप्ट:

$(".selector").change(function() { 
    var $value = $(this).val(); 
    var $title = $(this).children('option[value='+$value+']').html(); 
    alert($title); 
    $('input#bacon').val($title).css('border','3px solid blue'); 
}); 

HTML:

<select class="selector" name="testselect"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
</select> 
</h3> 

<input id="bacon" type="hidden" class="bacon" value="" name="testinput"> 
+1

आपका बच्चा फ़ायरफ़ॉक्स में मेरे लिए काम करता है। मैंने फ़ायरबग के साथ जांच की है कि क्या छुपा इनपुट का मूल्य बदल गया है और जब मैं ड्रॉपडाउन में एक अलग मान चुनता हूं तो यह बदल जाता है। हो सकता है कि मैं इस सवाल को समझ नहीं पा रहा हूं, हालांकि :-) – StefanS

+0

मेरे लिए ठीक काम करता है: छिपी हुई इनपुट क्रोम 9 में मूल्य में बदल दी गई है। कौन सा ब्राउज़र यह आपके लिए काम नहीं करता है, और आप किस विधि का उपयोग करते हैं इसे सत्यापित करें? –

+0

आपको क्यों लगता है कि यह ठीक से काम नहीं कर रहा है? आपका बेवकूफ ऐसा लगता है जो आप इसे करने के लिए कह रहे हैं। – Aaron

उत्तर

17

आपका jQuery कोड पूरी तरह से काम करता है। The hidden field is being updated

+1

लेकिन यह क्यों विफल रहता है http://jsfiddle.net/YvBfP/ – max4ever

+3

@ max4ever आप धारावाहिक HTML पढ़ रहे हैं, जहां 'मान' विशेषता इसके मूल मान को प्रतिबिंबित करेगी। कई कारणों में से एक है कि आपको 'आंतरिक HTML' से संबंधित तरीकों का उपयोग क्यों नहीं करना चाहिए। – alex

5

$(".selector").change(function() { 

    var $value = $(this).val(); 

    var $title = $(this).children('option[value='+$value+']').html(); 

    $('#bacon').val($title); 

}); 

बस अपने फ़ायरबग के साथ जांच काम करने के लिए लगता है

यहाँ JSFiddle है। और छुपा इनपुट पर सीएसएस मत डालो।

+1

अब काम करता प्रतीत होता है। मैं सीएसएस को एक बहुत ही कच्चे jquery डीबगिंग टूल के रूप में डाल रहा था ... फायरबग में देखने के लिए कि क्या मैं सही चयनकर्ता का उपयोग करता हूं। मुझे एक ब्रेक की आवश्यकता होगी। ताजा आंखें और एक पूर्ण पेट ने हल किया है जो स्पष्ट रूप से टूटा नहीं गया था (एक बार के लिए)। – helgatheviking

0

यदि आप इसे ड्रूपल में कर रहे हैं और हुक_फॉर्म_एल्टर (उदाहरण के लिए) में टेक्स्ट से # टाइप को 'छुपा' में बदलने के लिए फॉर्म एपीआई का उपयोग करें, तो सलाह दी जाए कि आउटपुट एचटीएमएल में अलग-अलग (या छोड़े गए) डीआईवी रैपर होंगे , आईडी और कक्षा के नाम।

$('#action').val("1"); 

#action छिपी हुई इनपुट फ़ील्ड आईडी है:

27

यह रूप में आसान है।

+0

एक आकर्षण की तरह काम किया !! – ersnh

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