2011-11-16 16 views
7

मैं jQuery का उपयोग कर एक बहुविकल्पीय रूप में अंतिम उपयोगकर्ता-चयनित विकल्प प्राप्त करने का एक तरीका ढूंढ रहा हूं।मल्टीसेलेक्ट से अंतिम चयनित विकल्प कैसे प्राप्त करें?

मैं सूची में अंतिम आइटम नहीं ढूंढ रहा हूं, लेकिन अंतिम आइटम के लिए उपयोगकर्ता ने क्लिक किया था।

+4

आपको अंतिम चयनित आइटम का ट्रैक रखना होगा। –

उत्तर

5

कुछ इस

var lastSelected = null; 
$('.multiSelectOptions').click(function(){ 
    lastSelected = this.value; 
}); 
+1

1. 'प्रत्येक 'की आवश्यकता नहीं है, और 2.' this (value'।' '' (।) .val() 'का उपयोग न करें। –

+0

@AndyE इनपुट के लिए धन्यवाद, बेहतर? :] –

+1

हाँ, आपके लिए +1 :-) –

0

की तरह जवाब में के रूप में this.value का उपयोग करते हुए ऊपर में विफल रहता है जब उपयोगकर्ता के लिए Ctrl + क्लिक किया और एक से अधिक आइटम का चयन किया है - यह सूची में पहले चयन का मान देता है, यहां तक ​​कि कि अगर आखिरी क्लिक नहीं किया गया था। इसे आज़माएं:

var previouslySelected = []; 
$("#myMultiselect").change (function() { 
    // Get newly selected elements 
    var currentlySelected = $(this).val(); 
    var newSelections = currentlySelected.filter(function (element) { 
     return previouslySelected.indexOf(element) == -1; 
    }); 
    previouslySelected = currentlySelected; 

    if (newSelections.length) { 
     // If there are multiple new selections, we'll take the last in the list 
     var lastSelected = newSelections.reverse()[0]; 
    } 
}); 
संबंधित मुद्दे