我们正在开发我们的第一个Android应用程序,到目前为止它是一个非常愉快的体验.它几乎完成,但在发布之前我们有一些考虑因素,主要是关于android软键盘.
我们有几个用于输入数字的 EditText字段.我们希望在用户按下Enter键时捕获事件,并进行一些计算并保存此回调.
问题是我们没有得到固定的事件,因为不同的手机有不同的键盘.有些人有"完成"按钮,我们的HTC手机有"进入"按钮.我们尝试将imeOptions用作'完成',但这对HTC手机没有影响.
我们也知道可以通过按下后退按钮来解除键盘.所以我的问题是,是否有一种可靠的方法可以知道用户何时停止输入或何时隐藏键盘,就像在iphone sdk中的textFieldShouldReturn回调一样(当键盘发生故障时它总是会触发,而不管是什么键导致它去了下)..
换句话说,Android开发人员如何处理软键盘?我在editText onClick()事件上检查KeyEvent.KEYCODE_ENTER并在那里完成我的任务.它正在我的HTC android上工作,但不是我的朋友Nexus手机,它有一个完成按钮而不是输入.甚至没有调用onClick.开发人员如何处理此问题?
编辑:失去了一半的头发,并在这里的一些好朋友的帮助下
我已经尝试了所有的建议,但最后通过使用onEditorActionListener和onKeyListener方法为我做了诀窍.在OnEditorActionListener的onEdit回调中,我检查了KeyCode ACTION_DONE,它确实在带有完成按钮的键盘上调用.在输入onKey的键盘上被调用.在onKey方法中我也检查了KEYCODE_BACK,因此也可以处理硬件反压事件.我还没有找到一个完成的Android设备并且在键盘上输入(严重),我甚至用标志处理了这个案例.感谢@Femi建议onEditorActionListener,感谢所有朋友的帮助.但是我原来问题的答案
问:有没有一种可靠而简单的方法来了解android软键盘辞职(适用于每部手机的回调)
答:不,这里建议的所有方法和其他网站上建议的所有方法都不简单.我认为处理键盘返回键事件是任何操作系统最基本的事情.谷歌,你呢?
我有一个问题,在IE8中,输入无法提交表单.我已经生成了一个测试页面来揭示这个问题.似乎在onLoad函数中显示表单会禁用enter按钮不再触发提交的结果.这是IE8中的错误还是一些安全问题?
重现这个的代码是:
onload = function() {
document.getElementById('test').style.display = 'block';
} Run Code Online (Sandbox Code Playgroud)
#test {
display: none;
}Run Code Online (Sandbox Code Playgroud)
<form id="test" method="get" action="javascript:alert('woei!')">
<input type="text" name="user" value="">
<input type="password" name="pw" value="">
<input type="submit" value="submit" id="submit">
</form> Run Code Online (Sandbox Code Playgroud)
可能重复:
Javascript捕获密钥
我正在使用mysql和php处理回复功能.
我的MySQL数据库:
reply:
rid - id;
topicid - under which topic;
uid - id of the guy who replies;
content - what did the guy said.
Run Code Online (Sandbox Code Playgroud)
这是我的HTML代码:
<form id="replyform">
<textarea name="rplcont" placeholder="Press enter to submit your reply."><textarea>
</form>
Run Code Online (Sandbox Code Playgroud)
我的问题是:我如何知道是否按下了输入按钮?
非常感谢.
/ ---------------------------------------------- /
这是我的代码有效:
HTML:
<textarea id="reply" name="reply" onKeyPress="enterpressalert(event, this)"></textarea>
Run Code Online (Sandbox Code Playgroud)
JS:
function enterpressalert(e, textarea){
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
alert('enter press');
}
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理.
感谢关注此主题的所有人!
在Selenium IDE 1.3.0中模拟ENTER,ESC,BACKSPACE和DOWN的确切HTML代码是什么?
typeKeys 没有工作,也没有这样做:
<tr>
<td>keyDown</td>
<td>id=zc_0_4_3-real</td>
<td>10</td>
</tr>
<tr>
<td>keyUp</td>
<td>id=zc_0_4_3-real</td>
<td>10</td>
</tr>
<tr>
<td>keyPress</td>
<td>id=zc_0_4_3-real</td>
<td>10</td>
</tr>
Run Code Online (Sandbox Code Playgroud) 基本上,我希望能够在ENTER按下键时触发事件.我已经尝试过了:
private void input_KeyDown(object sender, KeyEventArgs e)
{
if (e.Equals("{ENTER}"))
{
MessageBox.Show("Pressed enter.");
}
}
Run Code Online (Sandbox Code Playgroud)
但MessageBox永远不会出现.我怎样才能做到这一点?
我打电话的功能,每当有人按enter中textarea.现在我要禁用new line或break何时enter按下.
所以new line当按下shift+ 时应该工作enter.在这种情况下,不应该调用该函数.
这是jsfiddle演示:http: //jsfiddle.net/bxAe2/14/
我不确定我在这里做错了什么.我想使用回车键以及单击按钮.
<form action="" method="get" class="priceOptionForm" name="priceOptionForm">
<input name="paypal_email" type="text" value="whatever" id="email"></label>
<a href="javascript:void(0);" class="bluebtn" id="profile_price" style="width:60px;margin-top:5px;">Save all</a>
</form>
Run Code Online (Sandbox Code Playgroud) .val()jQuery中a项的属性<textarea>似乎不适用于新行.我需要这个功能,因为文本区域是为了识别输入键并将其显示为预览,新线条完整.
但是,这个小提琴会显示出什么:http://jsfiddle.net/GbjTy/1/.将显示文本,但不会显示新行.
如何实现预览以包含新行,我知道这是可能的,因为它在Stack Overflow Post Question预览中执行此操作.
谢谢.
PS我在SO上看到了与此相关的其他链接,但是他们都说让最终用户使用一些代码,这对我来说不是一个理想的方法.如果没有最终用户编写任何特定代码,我怎么能实现这一点,例如SO问题预览,其中Enter在预览中应该正常工作.
JavaScript(JQuery)
$('input').keyup(function(e)
{
var code = e.keyCode ? e.keyCode : e.which;
switch(code)
{
case 38:
break;
case 40:
break;
case 13:
break;
default:
return;
}
});
Run Code Online (Sandbox Code Playgroud)
HTML
<form method="post" action="/">
<input type="text" name="text" />
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
1)当我按向上箭头键时,插入符号不应移动.
例如,在Chrome中按下向上键时,它会将插入符号移到左侧.但我只在Chrome中遇到此问题.它在FF中工作正常.
2)当我按下回车键时,我不希望提交表格.
顺便说一句,我想让这个与keyup一起工作而不是keypress.
我很欣赏任何想法.谢谢.
几个星期前我开始使用Xamarin Studio,但无法找到下一个问题的解决方案:创建了一个包含序列号的edittext.我想Enter在按下之后运行一个功能.它工作正常,当我按下时Enter,该功能运行没有失败,但我无法修改edittext的内容(我不能输入它).
代码:
EditText edittext_vonalkod = FindViewById<EditText>(Resource.Id.editText_vonalkod);
edittext_vonalkod.KeyPress += (object sender, View.KeyEventArgs e) =>
{
if ((e.Event.Action == KeyEventActions.Down) && (e.KeyCode == Keycode.Enter))
{
//Here is the function
}
};
Run Code Online (Sandbox Code Playgroud)
这是控件的代码:
<EditText
p1:layout_width="wrap_content"
p1:layout_height="wrap_content"
p1:layout_below="@+id/editText_dolgozo_neve"
p1:id="@+id/editText_vonalkod"
p1:layout_alignLeft="@+id/editText_dolgozo_neve"
p1:hint="Vonalkód"
p1:text="1032080293"
p1:layout_toLeftOf="@+id/editText_allapot" />
Run Code Online (Sandbox Code Playgroud)
我尝试使用edittext_vonalkod.TextCanged它的参数,保留问题.我可以修改内容但无法处理Enter密钥.
谢谢!