jQuery自动完成功能关闭

时间:2011-02-01 15:31:34

标签: c# asp.net jquery

第一个问题

我有一个下拉列表,其中包含国家/地区(来自xml文件)。

选择国家/地区时,可以使用文本框的自动填充功能。 此自动填充包含来自所选国家/地区的邮政编码。

现在我想在dropdownlist.change事件之后立即设置自动完成功能 防止1个国家/地区的自动填充(填写邮政编码)也适用于其他国家/地区。但你怎么把它关掉呢?

代码:

//when changing country, other postcodes will load
        $('[id$=landenDropDown]').change(function () {

            //autocompletes removal
            ...

            $('[id$=POSTCODETextBox]').html("");

            var LandCode = $('[id$=landenDropDown]').attr("value");

            //autocomplete with postal codes for Belgium
            if (LandCode == "BE") {
                //autocomplete postcode from selected country
                $('[id$=POSTCODETextBox]').autocomplete("PostcodeBE.aspx");

            }
             //autocomplete with postal codes for Holland
            else if (LandCode == "NL") {
                //autocomplete postcode from selected country
                $('[id$=POSTCODETextBox]').autocomplete("thingXml.aspx");

            }

            else {
                //test
                getal += 1;
                alert(getal);
            }

问题在于自动完成功能完成并选择其他国家/地区 这个自动完成仍然存在,即使它不必显示。

2 个答案:

答案 0 :(得分:6)

请查看文档:{​​{3}}

$( ".selector" ).autocomplete({ disabled: true });

如果此解决方案不适合您,您可能会遇到其他问题。 使你的代码更好一点,也许是某些内部错误导致

变化

$('[id$=POSTCODETextBox]').html("");

$('[id$=POSTCODETextBox]').val("");

尝试为postcodetextbox工作:

$('[id$=POSTCODETextBox]').autocomplete({
      source: "somesource.aspx",
      change: function(event, ui) {
           $(this).autocomplete("destroy");
      }
});

但是这会禁止用户再次使用它......

您也可以停用文本框。

$('[id$=POSTCODETextBox]').attr("disabled", "disabled");

答案 1 :(得分:1)

    //when changing country, other postcodes will load
    $('[id$=landenDropDown]').bind($.browser.msie ? 'propertychange' : 'change', function () {

        //autocompletes removal
        ...

        var LandCode = $('[id$=landenDropDown]').attr("value");

        $('[id$=POSTCODETextBox]').autocomplete('destroy');

        //autocomplete with postal codes for Belgium
        if (LandCode == "BE") {
            //autocomplete postcode from selected country
            $('[id$=POSTCODETextBox]').autocomplete("PostcodeBE.aspx");

        }
         //autocomplete with postal codes for Holland
        else if (LandCode == "NL") {
            //autocomplete postcode from selected country
            $('[id$=POSTCODETextBox]').autocomplete("thingXml.aspx");

        }

        else {
            //test
            getal += 1;
            alert(getal);
        }