我的Chrome存在问题。我有一个下拉列表。除了Chrome,它运作良好。但是对于chrome,它首先添加一个空元素。
HTML部分:
<head>
<script type="text/javascript">
$(document).ready(function() {
townDistrictObject.bind({cityId:1});
});
</script>
</head>
<body>
<div class="left marginleft15">
<p>Town</p>
<p>
<select name="town1" id="townId" style="width: 152px;">
<option selected="selected" value="999999999">Whole Istanbul</option>
<option value="999999998">Anatolian Part</option>
</select>
</p>
</div>
<div class="left marginleft15">
<p>District</p>
<p>
<select id="districtId" name="districtid1" style="width: 174px;" >
<option selected="selected" value="0">Whole Districts</option>
</select>
</p>
</div>
</body>
脚本方面有类似的东西:
var townDistrictObject = {
defaults : {
cityId :1,
townElementId : "townId",
districtElementId : "districtId",
allDistricts: true
},
bind : function(options) {
$.extend(this.defaults, options);
var that = this;
var opts = this.defaults;
var townElement = $('#' + opts.townElementId);
townElement.val(0);
}
};
问题说明:
首先,列表顶部有一个空元素。(不应该!)
其次,我会点击其中一个。(“整个伊斯坦布尔”为我的例子。)
最后,我检查列表,顶部的元素消失。那段时间之后一切都还可以。
PS:我检查了代码,我认为问题与脚本方面有关。谢谢你的帮助。
答案 0 :(得分:2)
可能是你在做:
townElement.val(0);
当没有此值的选项时,您将下拉值设置为零。如果您使用默认值中的值,而不是零?
答案 1 :(得分:0)
问题是在此行设置了错误的ID:
townElement.val(0);
Jquery用以下代码替换它的答案:
townElement.get(0).selectedIndex = 0;