Javascript:输入提交
-
06-07-2019 - |
题
你好,这就是我文件头中的内容:
function entsub(event)
{
if (event && event.which == 13)
write1();
else
return true;
}
在身体里,我的表格是:
<form id="writeform" name="writeform">
Message: <br />
<textarea name="message" rows="3" id="message" style="width:90%;" onkeypress="return entsub(event)"></textarea>
<br />
<input name="send" type="button" id="send" value="Send" onclick="write1()" />
<span id="sent"></span>
<input type="reset" value="Reset" />
</form>
我需要让它工作,当我在textarea中按Enter键时,它不会创建新行但发送它[请参阅我的<input type="button">
]
但它不起作用!它不断创新......现在使用IE8。
解决方案
使用keyCode而不是。
根据浏览器的不同,您需要阻止默认操作。检查IE的event.cancelBubble和event.returnValue以及Firefox的event.stopPropagation()和event.preventDefault()。
其他提示
嗯,我不确定write1()
是什么,但在条件满足时返回false是明智的。
function entsub(event)
{
if (event && event.keyCode == 13) {
write1();
return false; //Return false to prevent default execution
//Some browsers use event.preventDefault() etc.
}else{
return true;
}
}
通常,跨浏览器测试如下:
function entsub(e) {
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
write1();
}
return true;
}
如果你想使用jquery,你可以这样做:
$(document).ready(function() {
$("#txtTest").keypress(function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
doSomething();
return false;
}
});
});
function doSomething() {
alert("I did it!");
}
其中txtTest是textarea的id。
对于非js相关的方式,我很确定你可以使用type = <!> quot; submit <!> quot;的输入。它将使用enter来提交表单。此时,您只需将事件移至onsubmit。
更简洁的方法是将<input type="button">
更改为<input type="submit">
并将onclick="..."
移动到表单上的onsubmit="..."
。这不需要那么多容易出错的JavaScript,并且可以在更多情况下使用。
不隶属于 StackOverflow