快速提问。
我有一个选择下拉列表,其中包含来自数据库的项目。当用户在文本框中键入内容时,我的jQuery代码会循环选择选项以确保他们输入一个唯一的项目。如果他们输入相同的项目,则在选择下拉列表中选择该项目。
有效。
我的问题是,当用户输入唯一值时,我会通过ajax将其发布到我的服务器。但是,每次我循环下拉时都会发布。
我知道这是因为我的ajax代码包含在$ .each循环中,循环遍历选择列表中的每个项目。我该如何编码,以便后期动作只发生一次?
// grab current val
var cv = $(this).val();
// loop through gov bodies drp to make sure that value isn't already present
$("#drpCurrentGOVBody option").each(function () {
if (cv == $(this).text()) {
//value is already present
//select it in drp down
$(this).attr('selected', 'selected');
} else {
//value isn't present. Add it to db
}
});
// post to db
$.post('ajax/school_search_results.php', {
add_new_gov_type: true,
data: cv,
action: 'newgov'
}, function (data) {
$("#drpCurrentGOVBody").html(data);
});
我还附上了有关部分的图片。
提前感谢您的帮助。
答案 0 :(得分:1)
您应该将您使用Ajax发送的数据存储在变量(循环外)中,一旦运行循环检查数据是否等于正在发送的新数据,如果不是,您应该使用Ajax代码,如果它等于只跳过Ajax部分。此外,如果尚未定义该变量,您还应该使用Ajax将其发送到您的服务器,因为它可能是第一次循环运行。
希望这有帮助,