gpt4 book ai didi

javascript - 检索在 onchange javascript 事件中创建的 javascript 变量

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

我有以下简单的表单,用户可以从中选择一个状态来查看信息:

<form style="position:absolute; top:65px; left:650px">
Select State to View:
<select id="myList" onchange="load_state_data(); xml = getStateInfo();">
<option selected="selected"></option>
<?php
foreach($stateNames as $state){
echo('<option>'.$state.'</option>');
}
?>
</select>
</form>

我的 JavaScript 如下:

function load_state_data() {
var state_name = $("#myList option:selected").val();
$.ajax({
type: 'post',
url: 'state_data.php',
dataType: "xml",
data: {
state_name: $("#myList option:selected").val()
},
success: function (data) {
//clear out previous values
for (j = 0; j < 5; j++) {
$('#top_name_' + j).html("");
$('#top_score_' + j).html("");
}

$(data).find('TOP').each(function (index) {
$('#top_name_' + index).html($(this).find('COMPANY_NAME').text());
$('#top_score_' + index).html($(this).find('Q_SCORE').text());
});

//initialize my temp arrays for reverse ordering the results
var botName = new Array();
var botScore = new Array()

//clear out previous values
for (j = 0; j < 5; j++) {
$('#bot_name_' + j).html("");
$('#bot_score_' + j).html("");
}

$(data).find('BOTTOM').each(function (index) {
//$('#bot_name_'+index).html($(this).find('COMPANY_NAME').text());
//$('#bot_score_'+index).html($(this).find('Q_SCORE').text());
botName[index] = $(this).find("COMPANY_NAME").text();
botScore[index] = $(this).find("Q_SCORE").text();
j = index;
});
var newOrderName = botName.reverse();
var newOrderScore = botScore.reverse();
for (i = 0; i < newOrderName.length; i++) {
$('#bot_name_' + i).html(newOrderName[i]);
$('#bot_score_' + i).html(newOrderScore[i]);
}

//clear the variables from memory
delete botName;
delete botScore;
delete newOrderName;
delete newOrderScore;


//cycle through results and save my locations to an array of the map markers
var inst_info = new Array();
$(data).find('INST_MARKER').each(function (index) {
inst_info[index] = [parseFloat($(this).find('LAT').text()),
parseFloat($(this).find('LONG').text()),
$(this).find('COMPANY_NAME').text(), $(this).find('Q_SCORE').text()];
});

$(data).find('INST_COUNT').each(function () {
$('#num_total').html($(this).find('NUM_TOTAL').text());
$('#num_null').html($(this).find('NUM_NULL').text());
});
return (inst_info);
},
error: function (data) {
alert('There was an error. Please try again shortly.');
}
});
};

我需要在调用该脚本的页面上访问此脚本中生成的 inst_info(请参见上面的表格)。这可能吗?如果可能的话,如何实现?我尝试过使用 inst_info = function load_state_data,但这不起作用。

最佳答案

这实际上是不可能的。事件处理程序在某个时间点异步触发,并且没有代码可以“返回”值。事件处理程序 load_state_data() 中发生的任何事情都与您的主 javascript 代码隔离,因为没有人知道它何时发生,以及是否会发生。您必须在事件处理程序中做任何您想做的事情。

关于javascript - 检索在 onchange javascript 事件中创建的 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659738/

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