gpt4 book ai didi

javascript 事件无法识别我的函数

转载 作者:行者123 更新时间:2023-12-02 19:38:44 25 4
gpt4 key购买 nike

我有一个ajax脚本,用于设置用户位置,表单输入是

<select id="region" onchange="city('/ajax-city.php')" ...>
<option>

<select ..\>
<option...>

当第一个选择列表中的一个选项发生更改(onchange)时,Ajax 请求将发送到服务器并处理响应,第二个 <select>已更新。

这是用来更新<select>的函数

var city = function(page)
{
if(xhro){ // stands for Xml Http Request Object
var fv = document.getElementById('region').value;
var obj = document.getElementById('city-element');
obj.innerHTML="<span style=\"display:block; width:200px; float:right; padding:0 10px 10px 0; font-family:Tahoma; font-size:12px;\"> please wait.. </span>";
xhro.open("POST",page);
xhro.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhro.onreadystatechange = function()
{
if(xhro.readyState==4 && xhro.status==200)
{
obj.innerHTML = "<select name=\"city\" onchange=\"subcity('ajax-subcity.php')\" id=\"city\" >"+xhro.responseText+"</select>";
}
}
xhro.send("city=" + fv);
}

如您所见,我的函数添加了 onchange 属性,以便在 <select name="city"> 时发送另一个 ajax 请求。 onchange 事件被触发,但是当我单击 <select name="city"> 中的下一个选项时,在 firebug 的控制台中我收到此错误

subcity is not a function

subcity("ajax-subcity.php");

当我在控制台中输入该函数时,firebug 会识别它,我认为当 ajax 请求更新 DOM 元素时,事件不会像页面正常加载时那样处理。

但这只是一个建议,考虑函数 city()已处理并更新 <select name="city>"但在下一个级别(subcity())没有更新发生

并创建 <option ..> s是用php脚本完成的。

它认为问题不在于 subcity() 函数,因为它在 firebug 中工作,顺便说一句,很高兴被提及。

var subcity = function(page){
alert("problem solved");
if(xhro){
var fv = document.getElementById('city').value;
var obj = document.getElementById('subcity-element');
obj.innerHTML="<span style=\"display:block; width:200px; float:right; padding:0 10px 10px 0; font-family:Tahoma; font-size:12px;\"> please wait</span>";
xhro.open("POST",page);
xhro.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhro.onreadystatechange = function(){
if(xhro.readyState==4 && xhro.status==200){
obj.innerHTML = "<select name=\"subcity\" id=\"subcity\" >"+xhro.responseText+"</select>";
}
}
xhro.send("city=" + fv);
}

最佳答案

我引用:

   if(xhro.readyState==4 && xhro.status==200){
obj.innerHTML = "<select name=\"subsity\" id=\"subcity\" >"+xhro.responseText+"</select>";
}

更改您在选择中使用的子城市 ID,请使用“子城市”而不是“子城市”,否则它将覆盖您的子城市功能!!!

ids 由 javascript 使用,这就是为什么它们必须是唯一的。,它不仅仅适用于 CSS。

编辑:

对城市和城市功能执行相同的操作

PS:你的代码一团糟,说真的!修复它。

关于javascript 事件无法识别我的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10662750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com