2016-08-20 102 views
0

問題渲染選擇標籤,然後從所選的選項中獲得的價值

創建從阿賈克斯jQuery的標籤元素(<select>),但有時我無法擺脫它的價值,有時我能得到它。

圖片 1 *的Ajax之前: enter image description here

圖片後2 *的Ajax: enter image description here

假設元件ID是:proyek。

當我試圖安慰它時:$('#proyek').val(),它表示undefined,但在我重新加載並重試該過程後,它說它的值爲17(右值)。

所以有時我可以得到的價值,有時我不能。


整個代碼

HTML:<span id="generateProyek"></span>

的jQuery:$("#generateProyek") .load("{{ this.url.getBaseUri()~"companyprojectdetail/ajaxproyek/" }}"+id,function(){});

*注:我用伏,用它{{ }}呼應的東西。

回答

0

jQuery無法直接尋址在頁面加載後創建的元素。 爲了完成這項工作,請使用委派。 因爲我沒有你的代碼的一個更大的圖片,我會展示出一種情況:

我們有一個div:$('#to_be_loaded_into') 現在,當我們點擊$('#proyek')(與Ajax請求創建),我們想要得到的值:

$('#to_be_loaded_into').on('click, '#proyek', function(){ 
console.log($('#proyek').val(); 
)}; 

編輯:試圖讓你的元素更具體,也許會是: $('#generateProyek').on('click, '#proyek', function(){ console.log($('#proyek').val(); )};

我必須首先解決已經加載到HTML元素,而且比參考元素裏面有它動態渲染

+0

我可以假設'$('#to_be_loaded_into')'=='$('#generateProyek')'..? –

+0

你是否表示我必須使用這個:'$('#generateProyek #proyek')。click(function(){console.log('#proyek')。val();})' –

+0

我會誠實的這裏說,我從來沒有使用'.click()'。 '.on('event','delegation [optional],function(){})'對我來說更有意義。但檢查jquery文檔'.click()'參數,看看它是否適合您的需求 – RanST