我有一个表单,用户可以在其中选择他的国家,然后根据选择的国家,表单的下拉列表(选择)更改为该国家/地区的州/省列表。到现在为止还挺好。问题是下拉选择表单是用 CSS 设计的。当页面最初加载时,一切都很完美,但是当调用 ajax 脚本然后更改州/省下拉列表时,它返回无样式,所以基本上它失去了所有样式。有谁知道如何解决这个问题?代码样式正确,由于某种原因,当 ajax 返回它时它只是不执行它。
这是jquery代码:
function state_box(country, user_id)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url = relative_path + 'states.php';
var action = url + '?country_id=' + country.value;
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4)
{
var response = xmlHttp.responseText;
document.getElementById('stateBox').innerHTML = response;
}
};
xmlHttp.open("GET", action, true);
xmlHttp.send(null);
}
而 states.php 的内容,基本上只是返回下拉列表,没什么花哨的:
$display_output = '<select class="mystyle" name="dropdown" id="dropdown"> ';
$display_output .= '<option value="" selected>Select a State</option> ';
while ($state_details = $this->fetch_array($sql_select_states))
{
$display_output .= '<option value="' . $state_details['id'] . '" ' . (($selected_value == $state_details['id']) ? 'selected' : ''). '>' . $state_details['s.name'] . '</option>';
}
$display_output .= '</select>';
$display_output = ($in_ajax) ? $display_output : '<div id="stateBox">' . $display_output . '</div>';
return $display_output;
唯一的问题基本上是CSS类“mystyle”在ajax返回后没有在浏览器中格式化。