想在右邊加入按鈕
版大您好:小弟參考您的範例
但想要在輸入框右邊加入下拉的按鈕
以表示這個值有auto-complete的功能
如: [url=http://evaqoo.blogdns.net/jquery-autocomplete/test/test.html]http://evaqoo.blogdns.net/jquery-autocomplete/test/test.html[/url]
原始碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" c>
<link rel="stylesheet" type="text/css" href="css/jquery.autocomplete.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.autocomplete.js"></script>
<script type="text/javascript">
$(function() {
var data = ['台北市中正區','台北市大同區','台北市中山區','台北市松山區','台北市大安區'];
$("#t1").autocomplete(data, {minChars: 0,autoFill: true,matchContains: true, mustMatch: true});
$("#b1").bind("click",function(e){
$("#t1").search(e);
});
});
</script>
</head>
<body>
<input type="text" name="t1" id="t1" /><input type="button" id="b1" value="▼">
<span></span>
</body>
</html>
但似乎沒辦法
請教是否有方法可行?
謝謝
[[i] 本帖最後由 lyndon1104 於 2009-9-25 16:43 編輯 [/i]] 你希望做到什麼樣的功能呢?按下旁邊的按鈕可以有作用嗎?還是只是裝飾的樣式?
若是裝飾的樣式,可以在原本的輸入框透過 CSS 指定一個背景圖即可。 抱歉沒說清楚
就是按下旁邊的按鈕,在輸入框沒有key任何字的情況下,
也會顯示出auto-complete所設定的預設值
能夠做到嗎?
謝謝 稍微看了一下,似乎沒有這樣的功能喔... 嗯,還是謝謝您.... 請問~
<script type="text/javascript">
$(function() {
var data = ['abc','acd','bad','cde,'aac];
$("#t1").autocomplete(data, { matchContains: true });
});
</script>
這樣有辦法
當我輸入
a
時只出現
abc
acd
aac
a開頭的提示字?
而不是
出現
abc
acd
bad
aac
中文也一樣
因為我現調屬性幾乎都沒變成我希望的~
謝謝! [b]回復 [url=http://jsgears.com/redirect.php?goto=findpost&pid=1050&ptid=114]86#[/url] [i]chiyuan1980[/i] [/b]
把 matchContains 改成 false 就可以囉 遇到了一個問題
不知道有沒有人也一樣
我在單獨的jsp中執行沒問題
但如果以下兩種情況
1.這支jsp include其他jsp
2.這支jsp被其他頁面include
都會出現error message
IE是Object doesnt support this property or method
FF是autocomplete is not a function
本來是以為沒呼叫成功
不過我在jquery.autocomplete.js加入測試function
且呼叫它是有執行的
所以並不是jquery.autocomplete.js沒載入
試過等每個頁面的DOM都載入後才執行
也是一樣的錯誤訊息
目前這個text field是放在header
只執行header是ok的
現在每個頁面都會include header
這樣的情況就無法正確執行 DOM 都載入不代表 js 都載入完成喔,可以試試看先放到 window onload 試試看[code]
$(window).load(function() {
//放這邊
});
[/code]如果可以,表示執行 autocomplete 時,autocomplete.js 還未載入,所以再調整一下順序即可。
或放 window onload 也可以,只是可能比較慢才執行。 [i=s] 本帖最後由 WILLIAMer 於 2010-2-9 18:10 編輯 [/i]
我的main page一共include header,left,footer三塊
我剛把left跟footer拿掉發現就可以了...
表示我得等所有的頁面皆載入才行
本來我只有在header加入[code]$(window.parent.document).ready(function(){
$(document).ready(function(){
$("#Keyword").autocomplete("searchSuggest.action",
{
minChars: 1,
matchContains: false
}
);
});
});[/code]以為這樣就可以確定parent已載入完畢
看來是沒顧慮到left跟footer這兩塊是否已載入完成了
好奇的是
header應該是管自己的jquery.autocomplete.js有沒有載入好就好了吧?
跟其他mainpage include的page是否載入好有關? 如果你的 include 是 server 端的,那麼最後組成 client 端的頁面其實只有一個喔。
你用的是 document ready,因此只有文件本身載入完成,並非所有的檔案都載入完成喔! 感謝你的幫忙
問題解決了 wmh 老兄,看到你這麼利害 我想請教你一下
在google.com打goo 的話會有一堆相關的東西
最後右邊有個 "關閉" 的 link
autocomplete 可以做得出來嗎? 他沒有提供這樣的功能讓你直接用,如果需要這樣的功能,得找其他的,或是自己做修改囉。 [quote]他沒有提供這樣的功能讓你直接用,如果需要這樣的功能,得找其他的,或是自己做修改囉。 ...
[size=2][color=#999999]wmh 發表於 2010-2-25 13:32[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1104&ptid=114][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote]
魔了一天都做不了
我在function init() 中加了
elementB = $("<DIV id='basicDiv'></DIV>");
elementA = $("<A id='basicLink'>hihi</A>");
elementA.appendTo(elementB);
elementB.appendTo(element);
在 function request(term, success, failure) 中加了
if(parsed.length>options.max){
$("#basicDiv").show();
}else{
$("#basicDiv").hide();
}
我有三個textfield , 第一次打字autocomplete ,成功, 加了的東西出現, 但我去另二個textfield打字郤不能出現我加的東西?大大知道為什麼嗎? [quote]魔了一天都做不了
我在function init() 中加了
elementB = $("");
elementA = $("hihi");
elemen ...
[size=2][color=#999999]kelvinjones 發表於 2010-2-25 17:47[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1105&ptid=114][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote]
己解決, 不用id 用class
謝 我直接把你改的 code 用官方的範例測試發現都還蠻正常的喔。
你有看到什麼樣的錯誤訊息嗎? [quote]我直接把你改的 code 用官方的範例測試發現都還蠻正常的喔。
你有看到什麼樣的錯誤訊息嗎? ...
[size=2][color=#999999]wmh 發表於 2010-2-26 10:06[/color] [url=http://jsgears.com/redirect.php?goto=findpost&pid=1107&ptid=114][img]http://jsgears.com/images/common/back.gif[/img][/url][/size][/quote]
我巴他改成這樣子就可以
我在function init() 中加了
elementB = $("<DIV/>").addClass("basicDiv_jquery_autoComplete");
elementA = $("<A>hihi</A>").addClass("basicLink_jquery_autoComplete").;
elementA.appendTo(elementB);
elementB.appendTo(element);
在 function request(term, success, failure) 中加了
if(parsed.length>options.max){
$("div.basicDiv_jquery_autoComplete").show();
}else{
$("div.basicDiv_jquery_autoComplete").hide();
}
這樣就行了, 我有三個textfield 每個都call autocomplete ,可能這樣他init 了三次, 相同id 產生了問題
但現在又發生另一個問題了, 最後一行<A>hihi</A> 給其他 selectbox 當住了....
用了 $("div.basicDiv_jquery_autoComplete").bgiframe(); , set 了 z-index 也不行, 不知怎搞的 :( 不好意思 請問一下
我去抓SQL內的資料出來比對
但是我抓出來卻不會比對 只會把全部抓出來(意思就是說 我隨便打一個東西 他就會把所有資料庫內的值秀出來)
不知道是哪邊的問題??(我抓資料的方法不夠好??)
還有 除了資料庫內全部會秀出來之外
在最後一筆資料下面還有個將近15個左右的空白
是要改jquery??
autocomplete.aspx.cs[code] private string Conn = ConfigurationManager.AppSettings["ConnectionString"];
protected void Page_Load(object sender, EventArgs e)
{
getData1();
}
private void getData1()
{
string q = Request["q"];
if (q == "")
{
return;
}
else
{
SqlCommand oCmd = new SqlCommand();
oCmd.Connection = new SqlConnection(Conn);
oCmd.CommandText = @"select case_name from shtc_case group by case_name";
oCmd.CommandType = CommandType.Text;
SqlDataAdapter oda = new SqlDataAdapter(oCmd);
DataSet ds = new DataSet();
oda.Fill(ds);
string[] data = new string[ds.Tables[0].Rows.Count];
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
string ss = ds.Tables[0].Rows[j]["case_name"].ToString();
data[j] = ss.ToString();
}
foreach (string x in data)
{
Response.Write(x+"\n");
}
//string[] data = new string[] { "trhtrhr", "acvbcv", "cbvxbdfb", "adqfvbb", "otulyjfgsdg" };
}
}
}[/code] [b]回復 [url=http://jsgears.com/redirect.php?goto=findpost&pid=1112&ptid=114]99#[/url] [i]a0808008[/i] [/b]
你 SQL 語法要修改,針對傳入的 Request["q"] 做資料篩選喔。