我有三个选择框.
<div style='float: left; padding-right: 10px;'>
<select size="10" name="company_id">
// a lot of options here
</select>
</div>
<div style='float: left; padding-right: 10px;'>
<select size="10" name="department_id" id="department_id">
// a lot of options here
</select>
</div>
<div style='float: left; padding-right: 10px;'>
<select size="10" name="user_id[]" id="user_id" multiple>
// a lot of options here
</select>
</div>
它们彼此相邻漂浮.在第一个项目中选择一个项目时,ajax查询将更新第二个项目的值.
在Firefox和大多数其他浏览器中发生的事情是,它的大小发生了变化,将第3个推开了.但是在IE(6.0和7)中,第二个更改了大小,但没有将第三个更改.
我所做的是固定盒子的尺寸,但是我想正确地固定它,所以有人知道吗?
$.get("ajax/fetchDepartment.PHP?sec=departments&company_id="+company_id,function(data){
$("#department_id").html(data);
});
数据包含所需的< option> Stuff< / option>
编辑添加:选择框始终在其中具有某些值.
最佳答案
IE和选择选项有一些我从未完全了解的“怪癖”(关于选择框和innerHTML的详细信息为here),但我至少可以为您提供一种解决方法.
诀窍是将选项显式添加到选择框中,而不仅仅是更改select元素批发的整个html.因此,以下工作:
原文链接:https://www.f2er.com/html/530555.html诀窍是将选项显式添加到选择框中,而不仅仅是更改select元素批发的整个html.因此,以下工作:
function changeval() {
var option = document.createElement("option");
option.text = 'my long text value to change stuff';
option.value = 'test';
$('#department_id')[0].options.add(option);
}
虽然这不是:
function changeval() {
var data = '<option value="test">my long test string with wide stuff</option>';
$("#department_id").html(data);
}
您可能会发现此page有用-显然他只是通过修改innerHTML来解决它,所以这可能是一个更简单的选择.由你决定.
function changeval() {
var data = '<option value="test">my long test string with wide stuff</option>';
$("#department_id").html(data);
$("#department_id").parent()[0].innerHTML += '';
}