2017-10-13 104 views
0

我的問題是,使用javascript/jquery,「如何更改特定索引下拉選項的值不是選擇索引?「javascript jquery dropdown listbox - 如何在特定索引處設置選項文本(未選中!)

我有一個值的下拉列表。用戶可以選擇一個選項。我有一種方法可以讓用戶更改所選選項的值。價值得到改變,一切都很好。

這裏是我的問題:如果用戶決定取消或更改列表中的不同的值,而不保存更改到數據庫中,我想撤消值變化。

  • 我有更改的選項的索引。
  • 我有更改後的選項的舊值。
  • 我有改變選項的新值。

如果用戶選擇了不同的選項,我不想更改新選擇的選項的索引。我只想重置用戶更改的選項的值。

我已經嘗試了。每個方法:

var changedTitle = $('#ddTitle').text(); 

$("#ddTitle option").each(function() { 
    if($(this).text() == changedTitle) { 
    $(this).text(savedTitle);    
    }       
}); 

我想通過每一個循環的想法,但我從來沒有看到執行循環通過第二次瀏覽器就不會回來了。

我已經嘗試了.filter方法:

var changedTitle = $('#ddTitle').text(); 

$("#ddTitle option").filter(function(index) { return $(this).text() === changedTitle; }).attr('selected', 'selected'); 

$("#ddTitle option").filter(function() { 
    return $(this).text() === changedTitle; 
}).prop('selected', true); // changes the selected option 

我得到了上面的過濾器的代碼工作,但它設置所選選項。

$("#ddTitle option").filter(function() { 
    return $(this).text() === changedTitle; 
}).prop('text', savedTitle); // execution never returns 

我嘗試使用該選項文本屬性,但jQuery的獲取非常繁忙和執行永遠不會返回。

我試着通過文本值,這是愚蠢的發現,因爲我知道索引:

$("#ddTitle option[value='" + theText + "']").attr('selected', 'selected'); 

如果這些得到一個選項是第一個選項(0)或瀏覽器掛起。

有沒有辦法改變指定的索引在JavaScript或使用jQuery的編程的文本值?我沒有嘗試過的作品。

回答

1

要更改第五選項的值,這樣做:

$('#yourselect').children('option:eq(4)').html('your text'); 
+0

我真的認爲你中有我在正確的軌道上。我仍在嘗試。 – Patricia

+0

事實證明,用戶所做的更改不會影響html。爲了獲得更多幫助,我需要將答案檢查一下。如果我可以根據你的建議得到一些結果,我會把它還給你。對不起。:-( – Patricia

+0

這個答案:你如何改變在一個特定的索引,而不是選定的索引下拉選項的價值? – Eric

相關問題