查找value是否为int下拉框

时间:2013-02-25 00:41:24

标签: jquery each

快速提问。

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

我还附上了有关部分的图片。 enter image description here

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

希望这有帮助,