【发布时间】:2018-08-21 18:21:34
【问题描述】:
该页面在 Chrome、IE 或 Firefox 中运行良好,但在 Safari 中我有一个奇怪的问题。单选按钮内的(单击)事件不起作用,该事件不会被触发。稍后我在按钮中有另一个(单击),它工作正常。该问题发生在 iPhone/iMac 上,因此与设备无关。
该页面只不过是带有一些问题的调查。下面是一个html代码示例:
<div class="col" *ngIf="!valueSelection">
<h4 for="">1.- Question 1</h4>
<div class="form-check">
<input class="form-check-input" type="radio" name="questionRMG1" id="questionRMG1_1" value="answerRMG1_1" [(ngModel)]="valueSelection"
(click)="onSelect(0.25)">
<label class="form-check-label" for="questionRMG1_1">Answer a.</label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="questionRMG1" id="questionRMG1_2" value="answerRMG1_2" [(ngModel)]="valueSelection"
(click)="onSelect(0.10)">
<label class="form-check-label" for="questionRMG1_2">Answer b./label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="questionRMG1" id="questionRMG1_3" value="answerRMG1_3" [(ngModel)]="valueSelection"
(click)="onSelect(0)">
<label class="form-check-label" for="questionRMG1_3">Answer c. </label>
</div>
<br>
<div class="form-check">
<input class="form-check-input" type="radio" name="questionRMG1" id="questionRMG1_4" value="answerRMG1_4" [(ngModel)]="valueSelection"
(click)="onSelect(0,50)">
<label class="form-check-label" for="questionRMG1_4">Answer d. </label>
</div>
<p>
<ngb-progressbar [value]="0" type="info">0%</ngb-progressbar>
</p>
</div>
这是正常工作的(点击)代码:
<div class="container">
<div class="row">
<div class="col">
<h4>Text</h4>
<br>
<form #mailForm="ngForm">
<div class="form-group">
<label for="exampleInputName1">Name</label>
<input type="text" class="form-control" id="exampleInputName1" [(ngModel)]="inputName" name="inputName" placeholder="nombre empresa">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Mail</label>
<input type="email" class="form-control" id="exampleInputEmail1" [(ngModel)]="inputEmail" name="inputEmail" aria-describedby="emailHelp"
placeholder="mail">
<small id="emailHelp" class="form-text text-muted">Text</small>
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1" [(ngModel)]="inputCheck" name="inputCheck">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary" (click)="onSend()" ng-disabled="sending">Enviar</button>
</form>
</div>
</div>
</div>
我真的不知道问题可能是什么。
【问题讨论】:
-
那么问题显然出在 Safari 上……考虑停止使用 Apple 产品吗?开个玩笑,你能测试一下香草
onclick事件是否有效吗? -
对不起,如果我没有正确解释自己,这两个代码片段是同一页面的一部分,调查一次只显示一个问题,当它结束时它会显示带有(点击)的代码工作,所以(点击)在单选按钮之外工作。
-
这很清楚,我在问是否在单选按钮上触发了
onclick事件。你能测试一下吗? -
当单击单选按钮时,调查会转到下一个问题,效果很好。那是你要求的吗?如果我误解了你,再次抱歉。
-
不,不是。在 javascript 中,您可以将事件绑定到 HTML 元素:在 Angular 中您编写
(click)="function()",在原生 JS 中它是onclick="function()"。我要求您测试单击事件是否适用于本机 JavaScript 中的单选按钮。如果他们不这样做,则意味着 Safari 无法将点击事件绑定到按钮。但如果确实如此,则意味着 Angular 在 Safari 和无线电点击事件方面存在问题。我正在尝试找出问题所在,以便为您提供一个合适的答案。