我正在使用 jquery.load() (1.4.2) 加载内容,其中包括一个我变成模型对话框的表单。当我打开对话框时,我会动态填充表单选择列表。
它在我第一次加载内容时工作,但在随后的加载中它会中断并且只会返回上一次加载中最后选择的项目。(我也认为它不会在后续加载时重新加载选择列表,即使对话框打开功能上的警报会触发。)
我将内容加载为:
<script>
...
$("#content").load("test.html")
..
</.script>
...
<div id="content"></div>
和 test.html 文件:
<script type="text/javascript">
jQuery(document).ready(function(){
$("#testForm").dialog({
autoOpen: false,
height: 400,
width: 700,
modal: true,
buttons: {
'Alert': function() {
alert($("#testSelectList").val());
},
'Close': function() {
$(this).dialog('close');
}
},
close: function() {
},
open: function() {
alert("Open");
$("#testSelectList").html("<option value=\"one\">one</option><br/>"+
"<option value=\"two\">two</option><br/>"+
"<option value=\"three\">three</option><br/>"+
"<option value=\"four\">four</option><br/>");
}
});
$("#testButton").button().live('click', function() {$("#testForm").dialog('open');});
});
</script>
<div id="testForm" title="Test">
<form>
<fieldset>
<label for="testSelectList">Select List</label><br/>
<select id="testSelectList" class="ui-state-default ui-corner-all">
<option value="">-none-</option></select><br/>
</fieldset>
</form>
</div>
<div id="test">
<h1>Form Select List Test</h1>
<button id="testButton">Open Test Form</button>
</div>
在此示例中,在第二个 .load() 上,如果我点击警报按钮,它不会返回选定的列表项 - 它只会返回第一项。
我已经尝试将 .live() 放在按钮周围单击打开对话框......但这并没有改变任何东西。