2011-10-18 21 views
11

चयन चलो कहते हैं कि मैं इस HTML करते हैं:jQuery onchange विकल्प

<select id='list'> 
    <option value='1'>First</option> 
    <option value='2'>Second</option> 
    <option value='3'>Third </option> 
</select> 
<input type ="text" id="text"/> 

और फिर इस जावास्क्रिप्ट

//other variables are also declared here 
    var x1 = 5; 
    var x2 = 10; 
    var value = x1 * x2; 
    var list_value =$("#list").change(function() { 
      $(this).val(); 
// just an example of how i want the function in the variable 
    }); 
    var nwval = value * list_value; 
     $('#text').val(nwval); 
// some long piece of code 
// i'm also using the list_value value somewhere in the long piece of code.. 

मैं उपयोगकर्ता एक विकल्प का चयन करता है के रूप में पाठ बॉक्स में वैल को बदलना चाहते हैं, मुझे पता है यह काम करेगा यदि मैं इसके चारों ओर परिवर्तन घटना लपेटता हूं, लेकिन क्या यह उस चर के list_value के रूप में रखते हुए इस बारे में जाने का कोई तरीका है?

+0

http://jsfiddle.net/karim79/BXu26/1/ –

+0

मैं समझता हूँ लेकिन उस कारण मैं :) मदद के लिए –

+10

@epascarello सिर्फ इसलिए कि आप जानते हैं पूछ रहा हूँ है इसका मतलब यह नहीं है कि वह कर सकता है, इसलिए ज्ञान की कमी की आलोचना करने के बजाय इसे समृद्ध करने का प्रयास करें ... – Joakim

उत्तर

16
var x1 = 5; 
var x2 = 10; 
var value = x1 * x2; 
var nwval; 
$("#list").change(function() { 
    nwval = value * $(this).val(); 
    $('#text').val(nwval); 
}); 
+0

बहुत बहुत धन्यवाद, यह मेरे लिए शानदार ढंग से काम किया। –

1

परिवर्तन घटना रैपिंग बेहतर तरीका के रूप में यह एक बंद बनाता है, तो आप नीचे के रूप में वैश्विक चर इस्तेमाल कर सकते हैं, लेकिन आप बेहतर (imho) होगा बस आगे नीचे फिर से मूल्य हड़पने के लिए।

आप तकनीकी रूप से कर सकता है (हालांकि के रूप में यह वैश्विक चर है एक बुरा विचार):

var x1 = 5; 
var x2 = 10; 
var value = x1 * x2; 
var list_value = 1; 
$("#list").change(function() { 
    list_value = $(this).val(); 
    var nwval = value * list_value; 
    $('#text').val(nwval); 
}); 
0

यह एक jQuery वस्तु, न कि एक मान देता है।

var list_value =$("#list").change(function() { 

आप कोड के बाहर मूल्य चाहते हैं, तो आप इस

var list_value = 0; 
var sel = $("#list").change(function() { 
     list_value = $(this).val(); 
}).change(); 
var nwval = value * list_value; 
$('#text').val(nwval); 

लेकिन onchange घटना कभी भी अपडेट नहीं होगा पेज, सिर्फ इतना है कि चर की तरह कुछ करने के लिए की आवश्यकता होगी!

3
$('#text').val($('option:selected').text()); 
$('#list').change(function(){ 

     $('#text').val($('option:selected').text()); 
}) 

यहां से जांच http://jsfiddle.net/QrHUN/

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