我在按下textarea中的Enter键时尝试提交此表单。它似乎应该工作,但事实并非如此。我收到警报,并刷新页面,但它不提交表单。它出什么问题了?谢谢!为了澄清,我想按下回车键与按下提交按钮完全相同。
<?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>
答案 0 :(得分:1)
请记住.submit()不是阻止操作。这意味着如果您之后调用导致修改导航的内容,您将中止提交。尽量不要重新加载页面。
BTW提交意味着始终是(同步)重定向。如果您打算提交一个AJAX表单(不会自动重定向),您应该在ajax调用的complete
回调中重新加载。
答案 1 :(得分:0)
您对两个表单元素使用相同的ID。 Id应该是独一无二的。您可以使用类
<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
});
答案 2 :(得分:0)
$('#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()
);
}
});