Skip to content

Commit fc8ab4b

Browse files
author
Adam Bradley
committed
fix(click): event.preventDefault() when setting focus() on an input, closes 583
1 parent 6a962c2 commit fc8ab4b

File tree

2 files changed

+77
-13
lines changed

2 files changed

+77
-13
lines changed

js/ext/angular/test/input.html

+75-12
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,95 @@
22
<head>
33
<meta charset="utf-8">
44
<title>Checkbox</title>
5-
6-
<!-- Sets initial viewport load and disables zooming -->
7-
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
5+
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
86
<link rel="stylesheet" href="../../../../dist/css/ionic.css">
7+
<style>
8+
.dot {
9+
position: absolute;
10+
width: 3px;
11+
height: 3px;
12+
background-color: red;
13+
z-index: 1000;
14+
pointer-events: none;
15+
}
16+
</style>
917
</head>
1018
<body>
1119

12-
<div>
13-
<content has-header="true" class="reveal-animation">
20+
<view id="view">
21+
<content has-header="true" padding="true" overflow-scroll="false">
1422
<div class="list">
1523
<label class="item item-input">
16-
<span class="input-label">First Name</span>
17-
<input type="text" placeholder="John">
18-
</label>
19-
<label class="item item-input">
20-
<span class="input-label">Last Name</span>
21-
<input type="text" placeholder="Suhr">
24+
<span class="input-label" ng-required>Your Name</span>
25+
<input type="text" value="name">
2226
</label>
27+
<a class="item item-checkbox no-arrow">
28+
<span class="input-label">Remember me</span>
29+
<label class="checkbox">
30+
<input type="checkbox">
31+
</label>
32+
</a>
2333
</div>
34+
35+
<label class="item item-input">
36+
<span class="input-label">From</span>
37+
<input type="text" class="text-right" value="from">
38+
</label>
39+
40+
<label class="item item-input">
41+
<span class="input-label">To</span>
42+
<input type="text" class="text-right" value="to">
43+
</label>
44+
45+
<label class="item item-input item-stacked-label">
46+
<span class="input-label">Comment</span>
47+
<textarea id="textarea">textarea</textarea>
48+
</label>
49+
50+
<button class="button button-block button-energized">
51+
Submit
52+
</button>
2453
</content>
25-
</div>
54+
</view>
2655

2756
<script src="../../../../dist/js/ionic.bundle.js"></script>
2857
<script>
2958
angular.module('navTest', ['ionic']);
3059

60+
var msgs = [];
61+
var timerId;
62+
console.debug = function() {
63+
var msg = [];
64+
for (var i = 0, j = arguments.length; i < j; i++){
65+
msg.push(arguments[i]);
66+
}
67+
msg.push(getTime());
68+
69+
msgs.push(msg.join(', '));
70+
71+
clearTimeout(timerId);
72+
timerId = setTimeout(function(){
73+
document.getElementById('view').style.display = 'none';
74+
document.writeln(msgs.join('<br>'));
75+
console.debug = function(){};
76+
}, 2000);
77+
};
78+
79+
document.addEventListener('touchstart', function(e){
80+
console.debug('touchstart');
81+
});
82+
document.addEventListener('touchstart', function(e){
83+
console.debug('touchend');
84+
});
85+
document.addEventListener('click', function(event){
86+
console.debug('click', 'clientX: ' + event.clientX, 'clientY: ' + event.clientY);
87+
});
88+
89+
function getTime() {
90+
var d = new Date();
91+
return d.getSeconds() + '.' + d.getMilliseconds();
92+
}
93+
3194
</script>
3295
</body>
3396
</html>

js/utils/poly.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
ele.dispatchEvent(clickEvent);
4747

4848
if(ele.tagName === 'INPUT' || ele.tagName === 'TEXTAREA' || ele.tagName === 'SELECT') {
49-
ele.focus();
49+
ele.focus();
50+
e.preventDefault();
5051
} else {
5152
ele.blur();
5253
}

0 commit comments

Comments
 (0)