2016-02-24 66 views
0

對不起,以前的帖子,我有一個自動完成下拉框,用戶選擇一個項目列表之外我需要代碼發送到服務器端。我以爲我可以使用選擇:功能要做到這一點,但沒有..任何幫助將不勝感激jquery自動填充選擇:「按鈕事件」

CODE:

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script> 
<style type="text/css"> .ui-autocomplete { position: absolute; cursor: default; font-size:12px; font-family:Arial;} </style> 
<script type="text/javascript"> 
    $(function() { 
     $(".tb").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: "EmployeeList.asmx/FetchEmailList", 
        data: "{ 'mail': '" + request.term + "' }", 
        dataType: "json", 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        dataFilter: function (data) { return data; }, 
        success: function (data) { 
         response($.map(data.d, function (item) { 
          return { 
           value: item.Email 
          } 
         })) 
        }, 
        error: function (XMLHttpRequest, textStatus, errorThrown) { 
         alert(textStatus); 
        } 
       }); 
      }, 
      minLength: 3, 
      select: function (event, ui) { 
       $(".ImageButton1").click(); 
      } 
     }); 
    }); 
</script> 

回答

0

自動完成構造的「源」屬性定義的內容選擇的選項對象是,當它改變時不會發生什麼。你會想是這樣的:

$(".tb").autocomplete({ 
    //This can be the result of a GET also 
    //Or any function that returns a legitimate type for source 
    source: ["your", "options", "here"] 
}) 

然而,當用戶選擇的東西發佈的數據,你要使用的更改事件,像這樣:

$(".tb").change(function() { 
    $.ajax({ 
        url: "EmployeeList.asmx/FetchEmailList", 
        data: "{ 'mail': '" + request.term + "' }", 
        dataType: "json", 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        dataFilter: function (data) { return data; }, 
        success: function (data) { 
         response($.map(data.d, function (item) { 
          return { 
           value: item.Email 
          } 
         })) 
        }, 
        error: function (XMLHttpRequest, textStatus, errorThrown) { 
         alert(textStatus); 
        } 
       }); 
} 

這個腳本會附加一個事件處理程序發送到服務器端端點「EmployeeList.asmx/FetchEmailList」的結果(假設您已將數據綁定到request.term)的「更改」事件(無論何時用戶使用您的選擇小部件):

,考慮使用

$(".tb").val() 

如果您在綁定術語數據到request.term時遇到困難。

編輯:

看來OP想觸發點擊事件或發送不同事件Ajax請求。

$(".tb").change(function() { 
    //Manually fire a click event like this 
    $(".ImageButton1").trigger("click"); 
}) 

當然,您將需要一些代碼附加到圖像按鈕的點擊事件爲此做任何事情。

$("ImageButton1").click(function() { 
    //Some code here, for instance your ajax request 
    //This will fire on the change event of your select object also if you include the code in this example 
}); 
+0

感謝您的幫助,但這件東西對我來說是新的。我只想在用戶從下拉列表中選擇後引發事件ImageButton1.click。應該很容易。此代碼工作正常,但用戶不必手動點擊按鈕。 – user1195021

+0

他們不必手動點擊按鈕,因爲只要您選擇的對象發生變化,事件就會觸發。 – awimley

+0

我添加了必要的代碼,以便在select元素更改時強制按鈕上的.click()。 – awimley

0

那是因爲我以爲,語法很簡單:改變

select: function (event, ui) { 
      $(".ImageButton1").click(); 

select: function() { $('#ImageButton1').click(); } 

這工作得很好,是簡單的(再次感謝)