select下拉框默認不能選擇第一個選項的問題


      如題,現在有個js的功能:用戶選擇下拉框的同時,把選擇的下拉框顯示出來。同時選擇的不能有重復的。剛開始 使用的是 select的onchange事件:

     

1 $("#liveType").on("change",function(){
2     $("#selectedLiveType").append("<p><span class='close'>X</span><button value='"+$('#liveType option:selected').val()+"' name='selectLiveType'  onclick='removeLiveType(this)'  style='background-color:white'>"+$('#liveType option:selected').text()+"</button></p>")
3 
4 })

 

  然而這種情況下,當選擇第一個的時候 ,總是沒有任何的反應。於是google:得到下面的方法

 

  

Element.prototype.onSelectChange = function(callback) {
	var cached = 0;
	this.addEventListener("click", function(event) {
		if (cached == this) {
			callback.call(this, event);
			cached = 0;
		} else {
			cached = this;
		}
	});
}

var select = document.getElementById("liveType");
select.onSelectChange(function(event) {
	var liveTypes=new Array();
	$("button[name='selectLiveType']").each(function () {
		liveTypes.push($(this).val());
	})
	var checkArray = liveTypes.join(',');
	if(checkArray.indexOf($('#liveType option:selected').val()) == -1){
		$("#selectedLiveType").append("<p><span class='close'>X</span><button value='"+$('#liveType option:selected').val()+"' name='selectLiveType'  onclick='removeLiveType(this)'  style='background-color:white'>"+$('#liveType option:selected').text()+"</button></p>")
	}

});

  

   通過 定義一個 數組checkArray, 使用indexOf進行判斷有沒有重復的。ok...

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM