与IE7有些麻烦。 IE8,Chrome,Firefox都运行良好,但IE7不会执行此代码。
这是HTML Select(Snippet)
<form name="frmCat" action="index3.html" method="get">
<select id="mySelect" onChange="onchange1((this).options[this.selectedIndex].value);">
<option>Select a Category</option>
</select>
这里是在其他浏览器中运行得很好的JavaScript(AJAX代码段):
function onchange1(catname){
//alert(catname);
$.ajax({
type: "GET",
url: "xml/categories.xml",
dataType: "xml",
success: function(xml) {
var div = $('#epcf-wrap');
var findval = "Cat"
$(xml).find('Cat').each(function(){
var cval = $(this).attr('name');
if(catname === cval){
// I bet there is an easier way to do this
var xmlArr = [];
var xml_EPCF_1_1 = $(this).find('EPCF_1_1').text();
我已经读过IE7和AJAX存在某种问题,我已经看到一些提示,应该进行某种形式的MSIE检查,但我是JavaScript的新手和JQuery没什么关系,我发现我在这里所做的事情非常清楚。
思想?
答案 0 :(得分:1)
您可以不使用内联JavaScript。使用jQuery方式。
$('#mySelect').change(function(){
//You can get the select value by the way below.
var catname = $(this).val();
$.ajax({
type: "GET",
url: "xml/categories.xml",
dataType: "xml",
success: function(xml) {
var div = $('#epcf-wrap');
var findval = "Cat"
$(xml).find('Cat').each(function(){
var cval = $(this).attr('name');
if(catname === cval){
//....
}
}
}
});
});
答案 1 :(得分:0)
在IE7中使用ajax没有问题。
请为ajax调用添加错误处理程序,并查看返回的错误消息。
还要确保您的方法获得正确的参数。
最后,
$("#myselect").change(handler(event))
听起来有点清洁。 这是在jquery doc中: http://api.jquery.com/change