我使用mysql查询构建了一个自动完成的城市列表。正确键入输入字段可启动搜索并构建可选择的城市列表。问题是城市名称没有被保存,只有在使用.on时键入的字符('更改' ...我尝试了其他鼠标事件,如鼠标悬停,鼠标移动,鼠标输出,鼠标中心,鼠标移动 - 并且他们要求用户首先从列表中选择项目,然后移出,然后再次在输入上滑动光标以实际触发所选城市名称的保存.html看起来像:
<input type="text" onmouseover="this.focus();" class="saveCity" name="pob_city" member_id="<?php echo $member_id; ?>" value="<?php echo $pob_city; ?>" placeholder="City" id="pob_city" />
<script language="javascript" type="text/javascript"> $("#pob_city").coolautosuggest({ url:"tools/autosuggest/query_cities.php?chars=" }); </script>
saveCityCountry javascript:
$(document).on('mouseout','.saveCity',function()
{
var DATA=$(this).val();
var n =remove_whitespaces(DATA);
var MEMBER_ID=$(this).attr('member_id');
$("#Results").html( "" );
if(n !=''){
var dataString = 'pob_city='+ n +'&member_id='+MEMBER_ID;
$.ajax({
type: "POST",
url: "saveData.php",
data: dataString,
cache: false,
success: function(html)
{
$("#Results").html( html );
}
});
}
})
您可以在http://dottedi.us/misc/ajaxsave/
看到演示另一件令人讨厌的事情是,对于普通的输入字段,例如名字或姓氏,只有当你点击页面上的其他地方时才会触发on change事件,因此安慰剂&#34; Save&#34;按钮。
更新:我清理了我的示例中的代码,将国家/地区中的城市拆分,并将帖子更新为引用saveCity。这不会影响结果,只是更容易理解。
在http://dottedi.us/misc/ajaxsave/tools/autosuggest/js/文件夹中有两个可能相关的javascript文件,jquery.coolautosuggest.js和jquery.coolfieldset.js。在jquery.coolautosuggest.js的第46行,我看到success:function(data){
。您希望我放置&#34; source:data,autoFocus:true,delay:0,minLength:0,select:response,response:response &#34;在这里的某个地方?请用正确的语法,semicolin等清楚说明。
在您添加的代码块中,我假设我更改了HTML,添加了,响应,而功能响应只是放在我的saveData.js中。一旦这是正确的,我是否会返回更改而不是鼠标悬停或鼠标悬停?
答案 0 :(得分:0)
在自动填充调用中包含响应功能,您可以在其中将所选值分配给隐藏字段,这样您就可以保留全文。
我假设您正在获取一系列城市,将每个城市存储在一个名为“城市”的键中的数组中并将其返回。
定义一个隐藏字段,说“selected_city”。
在coolautosuggest成功函数中放置此代码
来源:数据, autoFocus:true, 延迟:0, minLength:0, 选择:响应, 回应:回复
$("#pob_city").coolautosuggest({ url:"tools/autosuggest/query_cities.php?chars=" },response);
function response(){
if (typeof ui.content != "undefined" && ui.content.length === 1) {
city= ui.content[0].city;
}
else if (typeof ui.item != "undefined" && ui.item.label.length > 0) {
city= ui.item.label;
}
if (label.length > 0 || index.length > 0) {
$("#selected_city").val(city);
// this value you can use to display
}
}
在执行此操作之前,请在第120行更改jquery.coolautosuggest.js上的以下功能
if(me.submitOnSelect == true){$(“form”)。has(me.textField).submit(); }
到
如果(me.submitOnSelect == TRUE){ $( “#pob_city”)VAL($(本).find()文本() “suggestion_title。”); $( “形式”)有(me.textField).submit()。 }