使用jquery提交表单

时间:2014-04-11 19:07:44

标签: jquery html forms

我在按下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>

3 个答案:

答案 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()
    );
  }
});