我试图根据仅使用选项填充的外部html文件中第一个下拉列表的值填充第二个下拉列表。
外部文件示例:
<option value="Bedfordshire">Bedfordshire</option>
<option value="Berkshire">Berkshire</option>
<option value="Buckinghamshire">Buckinghamshire</option>
第一个下拉值示例:
<select>
<option value="GB">UNITED KINGDOM</option> //option to load drop-GB.html
<option value="US">UNITED STATES</option> //option to load drop-US.html
</select>
在FF / Safari / Chrome浏览器中一切正常,但在IE或iPad中却完全不行吗?
var $shipcountry = $('#ShippingCountry');
$ShippingStateSelect = $('#ShippingStateSelect');
$ShippingStateSelect.load('drop-GB.html'); //pre load default list
$shipcountry.change(function () {
var countryName = $shipcountry.val();
$.ajax({
type: 'GET',
url: 'drop-' + countryName + '.html',
success: function (msg) {
$ShippingStateSelect.load('drop-' + countryName + '.html');
//fire other events on page
},
error: function (msg) {
$ShippingStateSelect.hide();
//show error message here
},
});
});
最佳答案
您没有对传入的HTML进行排序,并且由于它不是“纯”元素,因此IE无法正常运行,而Firefox / Chrome等试图对其进行修复。
您的drop-US.html包含HTML结构,例如
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- BC_OBNW -->
<head>
<title>drop-US</title>
<link href="/StyleSheets/ModuleStyleSheets.css" type="text/css" rel="StyleSheet" />
<script type="text/javascript">var jslang='EN';</script>
</head>
然后尝试将其插入选择框。
因此,您应该在ajax请求中将其过滤掉,或者在源代码中将其删除。 :)
关于jquery - 使用jQuery和Ajax填充第二个下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7752818/