Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未选择Materialize.css autocomplete时如何运行函数?_Javascript_Jquery_Forms_Autocomplete_Materialize - Fatal编程技术网

Javascript 未选择Materialize.css autocomplete时如何运行函数?

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

我正在尝试编写一个函数,该函数将在未选择a Materialize.css autocomplete选项时执行。这可能吗?基本上,我想根据用户在name字段中选择的autocomplete选项,自动向电子邮件字段添加一个值,这很好。但我也希望当用户键入自定义名称时,电子邮件值消失,到目前为止,如果没有某种“清除”按钮,我无法让它工作。我尝试过这样写一个if/else语句:

$('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();