Javascript 未选择Materialize.css autocomplete时如何运行函数?
我正在尝试编写一个函数,该函数将在未选择a Materialize.css autocomplete选项时执行。这可能吗?基本上,我想根据用户在name字段中选择的autocomplete选项,自动向电子邮件字段添加一个值,这很好。但我也希望当用户键入自定义名称时,电子邮件值消失,到目前为止,如果没有某种“清除”按钮,我无法让它工作。我尝试过这样写一个if/else语句:Javascript 未选择Materialize.css autocomplete时如何运行函数?,javascript,jquery,forms,autocomplete,materialize,Javascript,Jquery,Forms,Autocomplete,Materialize,我正在尝试编写一个函数,该函数将在未选择a Materialize.css autocomplete选项时执行。这可能吗?基本上,我想根据用户在name字段中选择的autocomplete选项,自动向电子邮件字段添加一个值,这很好。但我也希望当用户键入自定义名称时,电子邮件值消失,到目前为止,如果没有某种“清除”按钮,我无法让它工作。我尝试过这样写一个if/else语句: $('input.autocomplete').autocomplete({ data: { //Data op
$('input.autocomplete').autocomplete({
data: {
//Data options
},
limit: 20,
onAutocomplete: function(val) {
if ( $("#personname").val() == "last name, first" ) {
$("#personemail").val("email@business.com");
}
else {
$("#personemail").val("");
}
},
minLength: 1,
});
但这似乎不起作用,因为(我认为)只有在执行了autocomplete后,此函数才会运行?在您的特定情况下,不需要使用autocomplete函数。我处理它的方法是在
$(“#personemail”)
字段上创建一个侦听器,该字段将检查自动完成中是否存在值
我已经创建了一些东西(我认为)解决了您面临的问题,请在JSFIDLE上查看:
$(函数(){
$('#personname').val('last name,first');//概念证明,假设用户输入
Materialize.updateTextFields();//删除它,您可以看到可视化错误
$('.autocomplete').autocomplete({
数据:{
“苹果”:空,
“香蕉”:空,
“黄色”:空,
“紫色”:空,
“绿色”:空,
“蓝色”:空
},
限额:20,
自动完成:功能(val){
if($('#personname').val()=='姓,名'){
$('personemail').val('email@business.com');
Materialize.updateTextFields();
}
},
最小长度:1,
});
$('#personname').change(function(){
$(“#个人邮件”).val(“”);
});
});代码>
@font-face{
字体系列:“材质图标”;
字体风格:普通;
字体大小:400;
src:local('MaterialIcons')、local('MaterialIcons-Regular')、url(https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2)格式('woff2');
}
.材质图标{
字体系列:“材质图标”;
字体大小:正常;
字体风格:普通;
字体大小:24px;
线高:1;
字母间距:正常;
文本转换:无;
显示:内联块;
空白:nowrap;
换字:正常;
方向:ltr;
-webkit字体功能设置:“liga”;
-webkit字体平滑:抗锯齿;
}
添加
名称
短信
自动完成
佩森平
电子邮件
在您的特定情况下,不需要使用自动完成功能。我处理它的方法是在$(“#personemail”)
字段上创建一个侦听器,该字段将检查自动完成中是否存在值
我已经创建了一些东西(我认为)解决了您面临的问题,请在JSFIDLE上查看:
$(函数(){
$('#personname').val('last name,first');//概念证明,假设用户输入
Materialize.updateTextFields();//删除它,您可以看到可视化错误
$('.autocomplete').autocomplete({
数据:{
“苹果”:空,
“香蕉”:空,
“黄色”:空,
“紫色”:空,
“绿色”:空,
“蓝色”:空
},
限额:20,
自动完成:功能(val){
if($('#personname').val()=='姓,名'){
$('personemail').val('email@business.com');
Materialize.updateTextFields();
}
},
最小长度:1,
});
$('#personname').change(function(){
$(“#个人邮件”).val(“”);
});
});代码>
@font-face{
字体系列:“材质图标”;
字体风格:普通;
字体大小:400;
src:local('MaterialIcons')、local('MaterialIcons-Regular')、url(https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2)格式('woff2');
}
.材质图标{
字体系列:“材质图标”;
字体大小:正常;
字体风格:普通;
字体大小:24px;
线高:1;
字母间距:正常;
文本转换:无;
显示:内联块;
空白:nowrap;
换字:正常;
方向:ltr;
-webkit字体功能设置:“liga”;
-webkit字体平滑:抗锯齿;
}
添加
名称
短信
自动完成
佩森平
电子邮件
非常感谢您的帮助!!嗨,我对前端编程相当陌生,尤其是angular。在你的例子中,我把这个函数放在哪里?这看起来像javascript,我使用的是typescript$(function(){$('#personname').val('last name,first');Materialize.updateTextFields();非常感谢您的帮助!!您好,我对前端编程相当陌生,尤其是angular。在您的示例中,我把这个函数放在哪里?它看起来像javascript,我只使用typescript…$(function(){$('#personname')。val('last name,first');Materialize.updateTextFields();