2016-11-03 7 views
6

के अलावा कक्षा या किसी अन्य चीज़ को देखने के लिए मेरी जावास्क्रिप्ट कैसे प्राप्त करें मेरे पास एक जावास्क्रिप्ट स्क्रिप्ट है जो मान और ड्रॉपडाउन की तलाश करती है और मूल्य के आधार पर अगले ड्रॉपडाउन मेनू को बदलती है, हालांकि यह अब काम नहीं करेगी मुझे क्योंकि मुझे मूल्य को वापस रूबी में पास करने की आवश्यकता है ताकि मैं इसे सत्रों में सहेज सकूं।वैल

$(document).ready(function() { 
 
    $('#Exposures').bind('change', function() { 
 
     var elements = $('div.exposures').children().hide(); // hide all the elements 
 
     var value = $(this).val(); 
 

 
     if (value.length) { // if something is selected 
 
      elements.filter('.' + value).show(); // show the ones we want 
 
     } 
 
    }).trigger('change'); 
 
    
 
    $('.second-level-select').bind('change', function() { 
 
     var elements = $('div.second-level-container').children().hide(); // hide all the elements 
 
     var value = $(this).val(); 
 

 
     if (value.length) { // if something is selected 
 
      elements.filter('.' + value).show(); // show the ones we want 
 
     } 
 
    }).trigger('change'); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<select class="pmmargin3 exp" size="1" id="Exposures" title="" name="exposures_pt1"> 
 
    <option selected disabled hidden style='display:none' value=''>-Please select an option-</option> 
 
    <option value="1">thing1</option> 
 
    <option value="1">thing2</option> 
 
    <option value="2">thing3</option> 
 
    <option value="1">thing4</option> 
 
    <option value="3">thing5</option> 
 
    
 
    </select> 
 

 
    <div class="container exposures leftmargin exp"> 
 
    <div class="1"> 
 
     <select class="second-level-select" name="exposures_pt2a"> 
 
      <option selected disabled hidden style='display:none' value=''>-  Please select an option-</option> 
 
      <option value="guardrail_system">thing1</option> 
 
      <option value="personal_fall">thing2</option> 
 
      <option value="safety_net">thing3</option> 
 
     </select> 
 
    </div> 
 
    <div class="2"> 
 
     <select class="second-level-select" name="exposures_pt2b"> 
 
      <option selected disabled hidden style='display:none' value=''>-Please select an option-</option> 
 
      <option value="guardrail_system">thing1</option> 
 
      <option value="personal_fall">thing2</option> 
 
      <option value="safety_net">thing3</option> 
 
      <option value="infeasibility_option">thing4</option> 
 
     </select> 
 
    </div> 
 
    <div class="3"> 
 
     <select class="second-level-select" name="exposures_pt2c"> 
 
      <option selected disabled hidden style='display:none' value=''>-Please select an option-</option> 
 
      <option value="current_subpart">thing5</option> 
 
      <option value="proposed_subpart">thing6</option> 
 
     </select> 
 
    </div> 
 
    </div>

किसी भी मदद के लिए धन्यवाद, मैं जावास्क्रिप्ट को काफी नई हूँ और मेरी सबसे अच्छी कोशिश कर रहा हूँ, लेकिन अभी भी कुछ मार्गदर्शन की जरूरत है।

उत्तर

1

अच्छी तरह से मुझे पता चला कि मेरे परिणाम कैसे प्राप्त करें और मेरे कोड में वैल्यू को समान रखें ताकि कुछ और तोड़ न जाए, मैंने यह कैसे किया।

$(document).ready(function() { 
$('#Exposures').bind('change', function() { 
    var elements = $('div.exposures').children().hide(); // hide all the elements 
    var value = $(this).val(); 
    *added* var exposuredd = document.getElementById("Exposures"); 
    *added* var selectedText = exposuredd.options[exposuredd.selectedIndex].text; 
*added* document.getElementById("exp1").innerHTML="<input type='text' name='exposures_pt1' value='"+selectedText+"' >"; 

    if (value.length) { // if somethings' selected 
     elements.filter('.' + value).show(); // show the ones we want 
    } 
}).trigger('change'); 

$('.second-level-select').bind('change', function() { 
    var elements = $('div.second-level-container').children().hide(); // hide all the elements 
    var value = $(this).val(); 

    if (value.length) { // if somethings' selected 
     elements.filter('.' + value).show(); // show the ones we want 
    } 
}).trigger('change'); 

}); 

इस

<p hidden id="exp1"></p> 

में ERB im इस का उपयोग करने में होने की जरूरत है तो अब मैं पारित कर सकते हैं जो कुछ भी पाठ में मेरे विकल्प जैसे रूबी के लिए .... "अरे यहाँ मैं हूँ" है

<option value="1">Hey Here I am</option> 
2

जो मैंने समझा था उसके अनुसार। आप सत्र में इसे सहेजने के लिए रूबी के लिए पहले ड्रॉपडाउन में चयनित डेटा भेजना चाहते हैं। यदि ऐसा है, तो प्रत्येक चयन पर आप कुकीज़ के साथ AJAX कॉल को ट्रिगर कर सकते हैं और सत्र ऑब्जेक्ट को तदनुसार अपडेट कर सकते हैं और बाद में इसे दूसरे ड्रॉपडाउन में भी प्रदर्शित कर सकते हैं।

हालांकि, ऑनजेज AJAX वास्तव में एक अच्छा सुझाव नहीं है, उस परिदृश्य में आप ब्राउज़र विकल्प में चयनित विकल्प को सहेज सकते हैं स्टोरेज और बाद में इसे अपने चयन (ड्रॉपडाउन) चक्र के अंत में अपने सर्वर पर एक एकल AJAX द्वारा सत्र ऑब्जेक्ट में जोड़ें ।

+0

खैर क्या एक बेहतर विकल्प तो है, मैं नहीं बल्कि उसके बाद सही विकल्प का उपयोग करने के लिए एक है कि सिर्फ 'works'.Also मैं कभी नहीं अभी तक ajax के साथ चारों ओर निभाई है .... –

+0

मैं इसे बचाने सुझाव है कि पसंद करेंगे ब्राउज़र सत्र में स्टोरेज और एक AJAX कॉल ट्रिगर करें इसे सहेजने के लिए सर्वर पर। इस तरह, सर्वर के लिए कम लोड। – Jyotirmay

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