2

快速提问。

我有一个选择下拉列表,其中包含来自数据库的项目。当用户在文本框中输入内容时,我的 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);
});

我还附上了相关部分的图片。 在此处输入图像描述

在此先感谢您的帮助。

4

1 回答 1

1

您可能应该将使用 Ajax 发送的数据存储在一个变量中(循环外),一旦您运行循环检查数据是否等于正在发送的新数据,如果不是,您应该使用您的 Ajax 代码发送它,如果它等于跳过 Ajax 部分。此外,如果该变量尚未定义,您还应该使用 Ajax 将其发送到您的服务器,因为这可能是循环第一次运行。

希望这可以帮助,

于 2013-02-25T01:00:10.073 回答