Reputation: 6039
This Meteor client code has two buttons. Clicking the CLEAR
button prints the following to the console:
Chrome: 'footer clear'
Firefox: 'form submitted' console also gives "ReferenceError: event is not defined"
How can I fix this so that it prints "footer clear" in all browsers? thx
Template.footer.events({
'click #clear': () => {
event.preventDefault();
console.log('footer clear'); //<---------- fired in Chrome
},
'click #info': () => {
event.preventDefault();
console.log('footer info');
}
});
Template.body.events({
'submit form': function (event) {
event.preventDefault();
console.log('form submitted'); //<---------- fired in Firefox
}
});
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div id="main">
<div id="content">
<form>
<button type="submit" style="display:none"></button>
{{> content}}
{{> footer}}
</form>
</div>
</div>
</body>
<template name="content">
<input type="text" id="plateNum" autocomplete="off">
</template>
<template name="footer">
<footer>
<button id="clear">CLEAR</button>
<button id="info">INFO</button>
</footer>
</template>
Upvotes: 1
Views: 89
Reputation: 7777
You need to pass the event as a parameter to your click handlers:
Template.footer.events({
'click #clear': (event) => {
event.preventDefault();
console.log('footer clear'); //<---------- fired in Chrome
},
'click #info': (event) => {
event.preventDefault();
console.log('footer info');
}
});
Chrome clearly has a global variable called 'event', but Firefox is fussy about it.
Upvotes: 1