jquery在自动完成选择事件

时间:2015-09-09 07:20:35

标签: javascript jquery autocomplete

我可以在自动完成选择事件中调用函数吗?
我有一个函数调用getResult(),它将从数据库中检索数据,函数运行平稳,我无法在自动完成的select事件中调用此函数。以下是我的代码:
自动完成代码:

$(function()
{
    //auto complete for facultyID
    var availableTags = <?php 
    $sql = "SELECT FacultyID from tblfaculty";
    $result = mysql_query($sql, $DBLink) or die("Error " . mysql_error($DBLink));

    $id_list = array();
    while($row = mysql_fetch_array($result))
    {
        $id_list[] = $row['FacultyID'];
    }
    echo json_encode($id_list); ?>;

    $("#FacultyID").autocomplete(
    {
        source: availableTags,
        autoFocus:true,
        select: function(event, ui)
        {
            getResult();
        }
    });
});

getResult()函数:

function getResult()
{
    $(function()
    {
        var Semester = $('#Semester').val();
        var Year = $('#Year').val();
        var Course = $('#Course').find(":selected").val();
        var Subject = $('#Subject').find(":selected").val();
        var FacultyID = $('#FacultyID').val();
        var TimeSlot = $('#TimeSlot').val();
        var Location = $('#Location').val();
        $.ajax(
        {
            type: 'POST',
            url: 'ajax_get_time_table.php', 
            data: {Semester:Semester+", "+Year, Course:Course, SubjectID:Subject, FacultyID:FacultyID, TimeSlot:TimeSlot, Location:Location},
            dataType: 'json',
            success: function(data)
            {
                if(data['error'] == null)
                {
                    if(data['no_result'] == null)
                    {
                        //do something
                    }
                    else
                    {
                        //do something
                    }
                }
                else
                {
                    alert("Error: " + data['error'])
                }
            },
            error: function(ts)
            {
                alert("AJAX Error: \n" + ts.responseText);
            }
        });
    });
}

我的代码有问题吗?

1 个答案:

答案 0 :(得分:1)

您不必将所有内容都放在getResult()函数中的doc ready块中:

$(function(){});

因为DOM已经加载,您可以在自动完成的select事件中调用此函数。