2012-03-20 59 views
2

我該如何在jquery mutiselect上調用onblur方法? 像我多選,我有以下的值,如果用戶選擇紅色和綠色,然後根據我需要從分貝jquery multiselect onblur方法

<select multiple="multiple" id="myID" name="myName"> 
    <option value="blue">blue</option> 
    <option value="red">red</option> 
    <option value="green">green</option>     
</select> 

我試圖click函數獲取數據,但可以一次發送只有一個選項值,以便尋找對於onblur類似於jquery multiselect中的函數或從多選中選擇所有值後觸發的任何事件,我的意思是如果用戶在多選之外單擊。

感謝advance.any的幫助會非常讚賞

+0

'.change()'可能是優良工程 – 2012-03-20 13:41:08

+0

@Gautam - 這是解決或者我應該看看? – 2012-03-21 10:02:31

回答

0

我相信你正在尋找$('#myID').change()

+0

但這並不適用於jquerymultiselect – Gautam 2012-03-20 13:40:12

0

試試這個:

$("#myID").change(function(){ 
    var selected = $("#myID option:selected").val(); 
    // Do your stuff 
}); 
0

使用.blur()方法

var selectedvals = []; 
$('#myID').blur(function() { 
    $('#myID > option:selected').each(function(i, selected) { 
     selectedvals.push($(selected).val()); 
    }); 
})​ 

selectedvals array co ntains從所選的選項

Working example here

0

它的工作原理值當您添加一個onblur事件。像這樣..

<select multiple="multiple" id="myID" name="myName" onblur="getVals(this)"> 
<option value="blue">blue</option> 
<option value="red">red</option> 
<option value="green">green</option>     

function getVals(el) { 
    var val = $(el).val(); 
    alert(val); 
} 

如果你選擇喜歡紅色和綠色,將通過這樣一個逗號分隔返回兩個值 - 「紅,綠」

你只會有解析並將其發送到後端腳本進行處理。

1

使用jQuery 1.7.1

$('#myID').on('blur', function(){ 
    var selected=[]; 

    $(this).find('option:selected').each(function(i,e){ 
     selected.push(e.value); 
    }); 
    alert('You selected: ' +selected.join(',')); 

});​ 

這裏是example

+0

感謝您的回覆,但這不適用於JqueryMultiselect插件 – Gautam 2012-03-20 14:15:08

+0

好的。我假設你正在使用[this](http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/)。如果是這樣,嘗試使用以下內容模擬'模糊'... $('#multiselect-demo + .ui-multiselect')。click(function(){$(this).one('mouseout',function (){alert('blur');});})' – mitch 2012-03-21 20:16:56

+0

嘗試[this](http://jsfiddle.net/WGQ9R/38/) – mitch 2012-03-21 20:46:46