为啥div里的onclick()事件不起作用?不会jq

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥div里的onclick()事件不起作用?不会jq相关的知识,希望对你有一定的参考价值。

参考技术A html代码里的changeVal(value)里面的value变量没有被定义吧,我估计你是要获取本地的obj对象,那应该是changeVal(this)追问

我改成了this.value还是没用

追答

zhandian,sta,end等常量要用引号引起来

本回答被提问者和网友采纳

为啥我的“onclick()”事件在 Angular 中不起作用?

【中文标题】为啥我的“onclick()”事件在 Angular 中不起作用?【英文标题】:Why my "onclick()" event doesn't work in Angular?为什么我的“onclick()”事件在 Angular 中不起作用? 【发布时间】:2020-05-02 12:02:06 【问题描述】:

这是我的 HTML 代码:

<div class="form-popup playerOne" id="myForm_input" dir="rtl">
    <form action="/action_page.php" class="form-container">  
      <label for="funcs"><b>انتخاب ورودی</b></label>

      <mat-select placeholder="انتخاب ورودی" >
          <mat-option *ngFor="let input of inputs" [value]="input">
             input 
          </mat-option>
      </mat-select>

        <button type="submit" class="btn " style="margin-top: 270px;" onclick="setInput($event)">اعمال</button>
        <button type="button" class="btn cancel" onclick="closeForm()">انصراف</button>
    </form>
</div>

这是我的 component.ts 代码:

  setInput(event)
    console.log('the selected input is:' , event);
  

但它似乎不起作用,因为我在控制台上没有看到任何日志消息。

编辑:

我将代码更改如下:

HTML:

<div class="form-popup playerOne" id="myForm_input" dir="rtl">
    <form action="/action_page.php" class="form-container">  
      <label for="funcs"><b>انتخاب ورودی</b></label>

      <mat-select placeholder="انتخاب ورودی" [(ngModel)] = "selectedValue">
          <mat-option *ngFor="let input of inputs" [value]="input">
             input 
          </mat-option>
      </mat-select>

        <button type="submit" class="btn " style="margin-top: 270px;" (click)="setInput(selectedValue)">اعمال</button>
        <button type="button" class="btn cancel" onclick="closeForm()">انصراف</button>
    </form>
</div>

TS:

  selectedValue: any;
  setInput()
    console.log('the selected input is:' , this.selectedValue);
  

但我收到此错误消息:

FlowComponent.html:8 ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form
      control must be defined as 'standalone' in ngModelOptions.

      Example 1: <input [(ngModel)]="person.firstName" name="first">
      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="standalone: true">
    at Function.missingNameException (forms.js:5421)
    at NgModel._checkName (forms.js:5928)
    at NgModel._checkForErrors (forms.js:5905)
    at NgModel.ngOnChanges (forms.js:5803)
    at checkAndUpdateDirectiveInline (core.js:27784)
    at checkAndUpdateNodeInline (core.js:38472)
    at checkAndUpdateNode (core.js:38411)
    at debugCheckAndUpdateNode (core.js:39433)
    at debugCheckDirectivesFn (core.js:39376)
    at Object.eval [as updateDirectives] (FlowComponent.html:12)

【问题讨论】:

【参考方案1】:

您需要使用事件绑定语法才能使其工作。

<button
  type="submit"
  class="btn"
  style="margin-top: 270px;"
  (click)="setInput($event)">اعمال</button>

链接到Docs

【讨论】:

我改了代码,但还是不行! 也许我必须传递另一个参数而不是 $event【参考方案2】:

在你的 html 中

<button
  type="submit"
  class="btn"
  style="margin-top: 270px;"
  (click)="setInput()">اعمال</button>

在你的组件中使用

setInput()
  console.log('the selected input is:' , this.selectedValue);

问候

【讨论】:

谢谢,但它说:“FlowComponent”类型上不存在属性“selectedValue”。 在您的 html 中添加 [(ngModel)] = "selectedValue" 到 mat-select。在您的组件中声明 selectedValue: any; 为 mat-select 添加名称 太棒了!谢谢!【参考方案3】:

使用(click)="setInput($event)" 作为绑定而不是onclick="setInput($event)"

【讨论】:

我改了代码,但还是不行! 也许我必须传递另一个参数而不是 $event?【参考方案4】:

您应该添加模板变量以将数据传递给函数。为此使用 ngModel 并将这个 ngModel 变量作为输入传递给(点击)

     <mat-select placeholder="انتخاب ورودی" [(ngModel)] = "selectedValue">
               <mat-option *ngFor="let input of inputs" [value]="input">
                  input 
               </mat-option>
           </mat-select>

             <button type="submit" class="btn " style="margin-top: 270px;"                   (click)="setInput(selectedValue)">اعمال</button>

【讨论】:

我像你说的那样修改了代码,还修改了这部分,如` setInput(selectedValue) console.log('选择的输入是:' , selectedValue); ` 但还是不行! console.log(this.selectedValue)

以上是关于为啥div里的onclick()事件不起作用?不会jq的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的“onclick()”事件在 Angular 中不起作用?

为啥 C# 的 onClick 事件在表标签的 <td> 中不起作用

为啥连接的 onclick 事件不会触发?

jsp 中onclick不起作用

带有 Bootstrap 的按钮 OnClick 事件在 iOS 上不起作用

Jquery Onclick 似乎对我不起作用