Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单提交预防技术不起作用_Javascript_Jquery_Ajax_Forms_Laravel - Fatal编程技术网

Javascript 表单提交预防技术不起作用

Javascript 表单提交预防技术不起作用,javascript,jquery,ajax,forms,laravel,Javascript,Jquery,Ajax,Forms,Laravel,我试图完成的事情我已经做过好几次了,但似乎有些不同。这是我第一个使用laravel的项目,我正在构建的是非常基本的。尽管如此,我认为这仅仅是一个HTML/JS问题,但是我觉得我应该把它说出来,因为我很生气 我想要的行为 用户进入输入字段,按enter键,而不是提交表单,表单被阻止运行(因此我可以使用ajax,但是ajax还不是这个等式的一部分) 我尝试过的 这是HTML <form action="test" method="POST"> <input type="text

我试图完成的事情我已经做过好几次了,但似乎有些不同。这是我第一个使用laravel的项目,我正在构建的是非常基本的。尽管如此,我认为这仅仅是一个HTML/JS问题,但是我觉得我应该把它说出来,因为我很生气

我想要的行为

用户进入输入字段,按enter键,而不是提交表单,表单被阻止运行(因此我可以使用ajax,但是ajax还不是这个等式的一部分)

我尝试过的

这是HTML

<form action="test" method="POST">
  <input type="text" id="text_input" class="form-control" autocomplete="off" />
  <input type="submit" id="submit_input" class="btn btn-success" />
</form>
我尝试过使用preventDefault,它允许运行警报,但会在警报之后运行任何代码

$(document).ready( function() {
    $('form').submit(function (e) {
        e.preventDefault();
        alert();
        $('#text_input').val() = '';
        $('#text_input').focus();
    });
});
我不想要的解决方案

我知道我可以在关注字段的同时获得按钮提交或回车键的输入,并且不使用html表单就可以获得这种行为,但是,我想知道是什么原因导致这种行为不起作用

JSFiddle

我的JSFIDLE有问题,所以我无法用它来演示。我以前没有在JSFIDLE上使用过表单,我得到了错误{“error”:“请使用POST请求”},但我不知道为什么,因为我在表单中指定了POST

其他信息

使用Laravel5,使用WAMP,在Chrome上加载jQuery2.1,在我的控制台中没有错误。请帮助。

您以错误的方式使用了
val()。您应该这样称呼它:
$('#text_input').val('some text')

更新: 您应该使用代码的第二个变体(与
e.preventDefault()

您使用的
val()
是错误的。您应该这样称呼它:
$('#text_input').val('some text')

更新: 您应该使用代码的第二个变体(与
e.preventDefault()

您使用的
val()
是错误的。您应该这样称呼它:
$('#text_input').val('some text')

更新: 您应该使用代码的第二个变体(与
e.preventDefault()

您使用的
val()
是错误的。您应该这样称呼它:
$('#text_input').val('some text')

更新:
您应该使用代码的第二个变体(带有
e.preventDefault()

这是一个注释,而不是答案。如果它解决了问题,那就是答案。不是每个答案都需要很长。这是一个答案,因为这正是问题的根源!我很惊讶Chrome Inspect控制台没有显示错误。我想这在技术上是有效的。我也将使用第二种变体,因为我知道这是最佳实践。感谢您快速而正确的回答。@JaredSmith问题是“允许警报运行,但在警报运行后确实运行了任何代码。”这是因为代码错误。奇怪的是,您没有收到“无效左手分配”错误。但我很高兴你的问题解决了。请不要忘记接受答案:)这是评论,不是答案。如果它解决了问题,那就是答案。不是每个答案都需要很长。这是一个答案,因为这正是问题的根源!我很惊讶Chrome Inspect控制台没有显示错误。我想这在技术上是有效的。我也将使用第二种变体,因为我知道这是最佳实践。感谢您快速而正确的回答。@JaredSmith问题是“允许警报运行,但在警报运行后确实运行了任何代码。”这是因为代码错误。奇怪的是,您没有收到“无效左手分配”错误。但我很高兴你的问题解决了。请不要忘记接受答案:)这是评论,不是答案。如果它解决了问题,那就是答案。不是每个答案都需要很长。这是一个答案,因为这正是问题的根源!我很惊讶Chrome Inspect控制台没有显示错误。我想这在技术上是有效的。我也将使用第二种变体,因为我知道这是最佳实践。感谢您快速而正确的回答。@JaredSmith问题是“允许警报运行,但在警报运行后确实运行了任何代码。”这是因为代码错误。奇怪的是,您没有收到“无效左手分配”错误。但我很高兴你的问题解决了。请不要忘记接受答案:)这是评论,不是答案。如果它解决了问题,那就是答案。不是每个答案都需要很长。这是一个答案,因为这正是问题的根源!我很惊讶Chrome Inspect控制台没有显示错误。我想这在技术上是有效的。我也将使用第二种变体,因为我知道这是最佳实践。感谢您快速而正确的回答。@JaredSmith问题是“允许警报运行,但在警报运行后确实运行了任何代码。”这是因为代码错误。奇怪的是,您没有收到“无效左手分配”错误。但我很高兴你的问题解决了。请不要忘记接受答案:)
$(document).ready( function() {
    $('form').submit(function (e) {
        e.preventDefault();
        alert();
        $('#text_input').val() = '';
        $('#text_input').focus();
    });
});