【问题标题】:Angular react to clicking/selecting an datalist option elementAngular 对单击/选择数据列表选项元素做出反应
【发布时间】:2017-11-10 11:00:51
【问题描述】:

当 value2 被点击时,这工作并调用方法 hhh()

 <select name="select">
    <option value="value1">Value 1</option>
    <option value="value2" (click)="hhh()">Value 2</option>
    <option value="value3">Value 3</option>
  </select>

这不会调用点击事件

<label>Choose a browser from this list:
<input list="browsers" name="myBrowser" /></label>
<datalist id="browsers">
  <option (click)="hhh()" value="Chrome">
  <option value="Firefox">
  <option value="Internet Explorer">
  <option value="Opera">
  <option value="Safari">
  <option value="Microsoft Edge">
</datalist>

如何获取datalist中的点击事件(或者更好的选择元素事件)?

【问题讨论】:

    标签: angular


    【解决方案1】:

    datalist 和 select 不是 100% 一样的,需要在输入栏加上(change)/(click)。但这可能不是你所追求的 100%。

    1. 选择您的项目。
    2. 使用按钮、击键 (Enter) 或将焦点留在字段上提交您的项目。

    是这样的:

    *.component.html

    <input list="browsers" name="myBrowser" (change)="onSortChange($event)">
    <datalist id="browsers">
        <option value="Chrome">
        <option value="Firefox">
        <option value="Internet Explorer">
        <option value="Opera">
        <option value="Safari">
        <option value="Microsoft Edge">
    </datalist>
    

    *.component.ts

    onSortChange(e) {
       this.sort(e.target.value);
    }
    
    
    sort(field: string) {
        switch (field) {
            case 'value1':
    
            break;
            case 'value2':
    
            break;
            case 'value3':
    
            break;
            default:
            break;
        }
    }
    

    否则,您需要实现自己的 Javascript 函数,例如 this

    【讨论】:

    • datalist 中没有选择元素。将更改事件放入 datalist 并没有导致它被调用
    • 我已经更新了我的答案,不知道你只想要一个数据列表。
    • 你可以在哪里测试这个? (change)中定义的方法永远不会执行
    • 我已经在我的一个项目和this plunker 中进行了测试。
    • 你是对的。有趣的是,该方法仅在离开输入字段的焦点后调用。我需要在选择一个元素后立即触发该事件。我可能会使用您链接的 JS 本机方法,这似乎可以满足我的需要。
    猜你喜欢
    • 2016-10-02
    • 2020-04-27
    • 2018-02-06
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多