我正在创建一个Cordova PhoneGap应用,但输入字段有问题。
我正在使用iScroll进行滚动和刷新。
突然我的输入字段没有响应。因此用户在启动应用程序时甚至无法登录。
我使用标准字段,我不能给输入字段重点。甚至没有包装,我设置“[input] .focus()”。
html代码是
<input class="newinput" onclick="this.focus();" type="email" id="email" name="email" value="" autocorrect="off" autocapitalize="off" required="" placeholder="Enter E-mail address">
CSS
.newinput {
width: 100%;
border: none;
padding: 0;
margin: 3px 0px 1px 0px;
background: white;
font-size: 16px;
color: #43ACDB;
z-index: 40;
}
其他风格(在Chrome开发者控制台中找到)
-webkit-writing-mode: horizontal-tb;
font: -webkit-small-control;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
display: inline-block;
text-align: start;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-appearance: textfield;
-webkit-rtl-ordering: logical;
-webkit-user-select: text; // tried without this line too
cursor: auto;
输入字段之前已经有效,但突然间没有一个可以获得焦点。不幸的是,我没有停止工作,因为我有自动登录,所以我没有使用输入字段的大多数应用程序功能。
我检查了所有js和css代码,但没有一行以“-webkit-user”开头(调试除外)
代码工作正常,如果我只是在我的Mac上的浏览器上的index.html但在iphone,Android和ipad上的android模拟器和浏览器有此错误
我还能做些什么才能让输入再次起作用?
答案 0 :(得分:1)
好的找到了答案。奇怪的是它是自2010年以来一直存在的iScroll错误。
使用以下设置:useTransform和onBeforeScrollStart。例如。
myScroll = new iScroll(
'wrapper', /** Change this to match your container ID **/
{
useTransform: true,
onBeforeScrollStart: function (e) {
var target = e.target;
while (target.nodeType != 1) {
target = target.parentNode;
}
if (target.tagName != 'SELECT' && target.tagName != 'INPUT'
&& target.tagName != 'TEXTAREA'
) {
e.preventDefault();
}
}
/** Add Any Additional Settings here **/
}
);