当文本区域中的Enter键被按下时,我正在尝试提交此表单。它看起来应该可以工作,但它不工作。我收到警报,它刷新页面,但它不提交表单。它有什么问题?谢谢!为了清楚起见,我想按enter键来做与点击submit按钮完全相同的事情。
<?php
//Doing stuff with the submitted form
?>
<form id='myform' action='' method='post'>
<tr>
<td><textarea id='but' class='messin' name='mess' placeholder='Reply...'></textarea></td>
<td><input class='messin' type='submit' name='submit' value='Send'/></td>
</tr>
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#but").keyup(function(event) {
if (event.which == 13) {
event.preventDefault();
alert("Submit!");
$("#myform").submit();
location.reload();
}
});
});
</script>
发布于 2014-04-12 03:13:12
请记住,.submit()不是阻塞操作。这意味着,如果您调用某个内容之后导致导航修改,您将中止您的提交。尽量不要重新加载页面。
BTW提交意味着总是(同步)重定向。如果您打算提交一个AJAX表单(不会自动重定向),那么应该在ajax调用的complete
回调中重新加载。
发布于 2014-04-12 03:17:50
您正在为两个表单元素使用相同的id。Id在性质上应该是唯一的。您可以改用class
<td><textarea class='messin' name='mess' placeholder='Reply...'></textarea></td>
<td><input class='messin' type='submit' name='submit' value='Send'/></td>
JS更改:
$(".messin").keyup(function(event) {
//code
});
发布于 2014-04-12 03:26:31
$('#but').keypress(function (event) {
if (event.which == 13) {
$('#myform').submit();
}
});
希望这段代码能对你有所帮助。
如果您不想使用event.preventDefault();
或return false;
发送表单,请添加。看这个例子:
$('#but').keypress(function (event) {
if (event.which == 13) {
$('#myform').submit(
// do some stuff with form
event.PreventDefault(); // or return false; // return false == event.PreventDefault()
);
}
});
https://stackoverflow.com/questions/23020725
复制相似问题