我的问题是,使用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的编程的文本值?我没有尝试过的作品。
我真的认为你中有我在正确的轨道上。我仍在尝试。 – Patricia
事实证明,用户所做的更改不会影响html。为了获得更多帮助,我需要将答案检查一下。如果我可以根据你的建议得到一些结果,我会把它还给你。对不起。:-( – Patricia
这个答案:你如何改变在一个特定的索引,而不是选定的索引下拉选项的价值? – Eric