Javascript autosearch的Java脚本无法使用CSS处理文本框
我想要一个带有自动搜索JavaScript的文本框。我的Aspx文本框是:Javascript autosearch的Java脚本无法使用CSS处理文本框,javascript,css,asp.net,autocomplete,Javascript,Css,Asp.net,Autocomplete,我想要一个带有自动搜索JavaScript的文本框。我的Aspx文本框是: <asp:TextBox ID="txt_DestinationRoute" runat="server" CssClass="form-control" placeholder="e.g. Route you followed" TextMode="MultiLine" Rows="2"></asp:TextBox> <asp:RequiredFieldValidator Valid
<asp:TextBox ID="txt_DestinationRoute" runat="server" CssClass="form-control" placeholder="e.g. Route you followed" TextMode="MultiLine" Rows="2"></asp:TextBox>
<asp:RequiredFieldValidator ValidationGroup="destinations" ID="rfvtxt_DestinationRoute" ControlToValidate="txt_DestinationRoute" Display="Dynamic" runat="server" ErrorMessage="*" ForeColor="Red"></asp:RequiredFieldValidator>
我的JavaScript是:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script type="text/javascript">
google.maps.event.addDomListener(window, 'load', function () {
var places = new google.maps.places.Autocomplete(document.getElementById('txt_DestinationRoute'));
google.maps.event.addListener(places, 'place_changed', function () {
var place = places.getPlace();
var address = place.formatted_address;
var latitude = place.geometry.location.A;
var longitude = place.geometry.location.F;
var mesg = "Address: " + address;
mesg += "\nLatitude: " + latitude;
mesg += "\nLongitude: " + longitude;
//document.getElementById('lat').innerHTML = latitude;
//document.getElementById('log').innerHTML = longitude;
alert(mesg);
});
});
</script>
google.maps.event.addDomListener(窗口'load',函数(){
var places=new google.maps.places.Autocomplete(document.getElementById('txt_DestinationRoute');
google.maps.event.addListener(places,'place_changed',函数(){
var place=places.getPlace();
var address=place.formatted\u地址;
var latitude=place.geometry.location.A;
var经度=place.geometry.location.F;
var mesg=“地址:”+地址;
mesg+=“\n纬度:”+纬度;
mesg+=“\n长度:”+经度;
//document.getElementById('lat')。innerHTML=纬度;
//document.getElementById('log')。innerHTML=经度;
警报(mesg);
});
});
当我在没有任何CSS类的普通文本框中尝试时,效果很好
但它不适用于CSS。问题是asp为客户端生成不同的id,请尝试:
<asp:TextBox ClientIDMode="Static"
请找到下面的答案
用户界面
鸟:
**剧本**
$(函数(){
功能拆分(val){
返回val.split(/,\s*/);
}
功能提取最后(学期){
返回拆分(term.pop();
}
//触发搜索事件的按钮侦听器
$(“#搜索触发器”)。单击(函数(){
var searchTerm=$(“#鸟”).val();
$(“#鸟”)。自动完成(“搜索”,搜索词);
});
$(“鸟”)
.bind(“键控”,函数(事件){
如果(event.keyCode===$.ui.keyCode.TAB&&
$(此).data(“自动完成”).menu.active){
event.preventDefault();
}
})
.自动完成({
资料来源:[“lorem”、“ipsum”、“dolor”],
/*将此注释掉以使用上面的虚拟数据
功能(请求、响应){
$.getJSON(“search.php”{
期限:extractLast(request.term)
},回应);
},*/
搜索:函数(){
var项=提取时间(此值);
/*这张支票是做什么用的?
如果(术语长度<2){
返回false;
}*/
},
焦点:函数(){
返回false;
},
选择:功能(事件、用户界面){
var术语=分割(此值);
terms.pop();
术语推送(ui.item.value);
术语。推送(“”);
this.value=terms.join(“,”);
返回false;
},
//添加了“全部显示”支持
最小长度:0
});
});
我对文本框css有问题,而不是脚本。。。。但感谢你的新方法这也是一个好方法谢谢你的反馈:)
var places = new google.maps.places.Autocomplete(document.getElementById('<%= txt_DestinationRoute.ClientID %>'));
<div class="ui-widget">
<label for="birds">Birds: </label>
<input id="birds" size="50" />
<input type="button" id="search-trigger" value="Trigger" />
</div>
**Script**
<script type="text/javascript">
$(function() {
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
// Button listener that triggs the search event
$("#search-trigger").click(function(){
var searchTerm = $( "#birds" ).val();
$( "#birds" ).autocomplete( "search" , searchTerm);
});
$( "#birds" )
.bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "autocomplete" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
source: ["lorem", "ipsum", "dolor"],
/* Commented this out to use dummy data above
function( request, response ) {
$.getJSON( "search.php", {
term: extractLast( request.term )
}, response );
},*/
search: function() {
var term = extractLast( this.value );
/* What is this check for?
if ( term.length < 2 ) {
return false;
}*/
},
focus: function() {
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
terms.pop();
terms.push( ui.item.value );
terms.push( "" );
this.value = terms.join( ", " );
return false;
},
//Added for "show all" support
minLength: 0
});
});
</script>