我正在使用JQuery创建一个Web表单。
我想使用链接将以前的选择字段复制到另一个选择字段中。我改变了DOM,改变了select1.selectedIndex的值。但它仍然可视地显示旧值。显然你需要刷新它,以便在视觉上更新。我不明白我一直在阅读的刷新方法的语法。这就是我尝试这样做的方式,但它不起作用。
这是链接的HTML
<select name="entry.14.single" id="entry_14">
<option value="1"></option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option></select>
<select name="entry.16.single" id="entry_16">
<option value=1""></option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option></select>
<a href="#" onclick="setSelect('entry_16', 'entry_14');return false;">Same as above</a>
这是我的javascript:
function setSelect(id1, id2){
var select1 = document.getElementById(id1);
var select2 = document.getElementById(id2);
select1.selectedIndex = select2.selectedIndex;
$('#select1').selectmenu('refresh');
}
有人可以告诉我为什么我的刷新声明不起作用吗?
P.S。我知道在同一个问题上还有其他线程,我也读过'文档'。请不要把我链接到其他地方。我已经阅读了其他消息来源,并没有让我到任何地方。请告诉我要更改的内容,以使刷新正常运行。
编辑:这是一个你可以搞砸的jsfiddle http://jsfiddle.net/AFzqt/7/
答案 0 :(得分:11)
使用jQuery事件处理程序!
您正在寻找的功能是:
selectmenu("refresh")
在您的示例中,它看起来像这样:
$(function() {
$("#changeButton").on("click", function(e) {
$("#entry_16").val($("#entry_14").val());
$("#entry_16").selectmenu("refresh");
e.preventDefault();
});
});