gpt4 book ai didi

javascript - 由于切换,无法读取未定义的属性 'done'

转载 作者:行者123 更新时间:2023-11-28 19:19:49 25 4
gpt4 key购买 nike

我有一个通过ajax获取数据的函数。问题是构造开关导致此错误:

cannot read property 'done' of undefined

不知道为什么...

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
function changeSelect(input,type)
{
var out;
switch(type)
{
case "sport" : out=$.post("/ajax/ajax.php",{sport:input.value});
case "competition" :out=$.post("/ajax/ajax.php",{competition.value});
}
out.done(function(data)
{
$("#output").html(data);
});
}</script>
谢谢您的回答。

最佳答案

您收到错误的可能原因是 type 的值与您的 case 都不匹配声明。因此,out仍然undefined并给出您看到的错误。

此外,您必须使用 break;声明,以防您的 case:声明和 {competition.value}不是有效的 ES5 JavaScript。也许你想要这样的东西:

function changeSelect(input, type) {
var out;
switch (type) {
case "sport":
out = $.post("/ajax/ajax.php", {sport: input.value});
break;
case "competition":
out = $.post("/ajax/ajax.php", {sport: competition.value});
break;
default:
break;
}
if (out) {
out.done(function(data) {
$("#output").html(data);
});
}
}

我不知道你的 {competition.value} 到底是什么意思。我猜你可能希望它是 {sport: competition.value} ,但我没有看到competition在任何地方定义,所以我不太确定。

<小时/>

或者,也许删除一些重复的代码并使用它:

function changeSelect(input, type) {
var val;
switch (type) {
case "sport":
val = input.value;
break;
case "competition":
val = competition.value;
break;
default:
break;
}
if (val) {
$.post("/ajax/ajax.php", {sport: val}).then(function(data) {
$("#output").html(data);
});

}
}

关于javascript - 由于切换,无法读取未定义的属性 'done',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29088112/

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