0

我有一个绑定到 jquery UI 自动完成的输入字段。从自动完成的下拉列表中选择特定条目时,客户端会收到一些条目,然后将其设置为其他字段的值。它工作正常。但是当我在字段中写一些东西作为值并期望接收这些数据时,我没有得到它们。我不知道该怎么做。

我的第二个问题是,为了解决这个问题,我用 jquery change() 绑定了相同的输入字段。更改时,特定值会设置为其他一些字段,但会立即从字段中消失。我无法理解问题是什么。我的代码在这里。

                $("#siteID1").autocomplete({
                        source: "sourceSearch.php?field=site",
                        minLength: 1,

                        focus: function(event, ui) { 
                            event.preventDefault();
                            $(this).val(ui.item.label);
                        },

                        select: function( event, ui ) {
                            event.preventDefault();
                            $(this).val(ui.item.label);

                        },
                        change: function (event, ui) {
                            event.preventDefault();
                            if(ui.item!=null)
                            {
                                $("#site1Name").val(ui.item.value.btsName);
                                $("#site1Long").val(ui.item.value.longitude);
                                $("#site1Lat").val(ui.item.value.latitude);
                                $("#site1CId").val(ui.item.value.componentId);
                            }
                            else
                            {
                                $("#site1Name").val("");
                                $("#site1Long").val("");
                                $("#site1Lat").val("");
                                $("#site1CId").val("");
                            }


                        }   
               });

上面的代码是当我将自动完成与字段绑定时。以下代码是我用 change() 绑定字段时的代码。

               $('#siteID1').change(function() {
                    $.ajax({            
                              url: "sourceSearch.php?field=site&term="+$('#siteID1').val(),
                              dataType: 'json',
                              //async: false,
                              success:  function(data){

                                    if(data)
                                    {
                                        $("#site1Name").val(data[0].value.btsName);
                                        $("#site1Long").val(data[0].value.longitude);
                                        $("#site1Lat").val(data[0].value.latitude);
                                        $("#site1CId").val(data[0].value.componentId);
                                    }
                                    else
                                    {
                                        $("#site1Name").val("");
                                        $("#site1Long").val("");
                                        $("#site1Lat").val("");
                                        $("#site1CId").val("");
                                    }


                              }
                        }); 
                });

在这两种情况下,我都能准确地从服务器接收到 json 数据。但是在更改时,“btesName”、“longitude”等一旦被设置为值就会消失。谁能帮帮我吗??

4

1 回答 1

0

如果换行会发生什么

    $('#siteID1').change(function()

对此:

    $('#siteID1').live('change' ,function()

这些帮助有用?

您是否还在 else 语句中放置了一个警报,以防它在不应该触发的情况下触发?

于 2012-06-25T14:44:34.127 回答