Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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 Jquery停止提交并从表单获取数据_Javascript_Jquery_Pug - Fatal编程技术网

Javascript Jquery停止提交并从表单获取数据

Javascript Jquery停止提交并从表单获取数据,javascript,jquery,pug,Javascript,Jquery,Pug,我正在尝试使用jquery从表单获取数据,并使用以下代码停止表单提交: $form = $('form#signup') $form.submit(function(event){ event.preventDefault(); var $input=$('#signup :input') console.log($input.username) alert($input.username) }) 但是表单仍然posts数据,并且警报框没有出现。firebug也会出现错误$is

我正在尝试使用jquery从表单获取数据,并使用以下代码停止表单提交:

$form = $('form#signup')
$form.submit(function(event){
  event.preventDefault();
  var $input=$('#signup :input')
  console.log($input.username)
  alert($input.username)
})
但是表单仍然
post
s数据,并且警报框没有出现。firebug也会出现错误
$is not defined
和Node.js崩溃

形式(用玉石书写):


您需要防止表单提交时使用
返回false

$form.submit(function(event){

  var $input=$('#signup :input');
  console.log($input.username);
  alert($input.username);

 // data = array of all the information collected from the input tags
 //data = $form.serizalize(); will also work
 data = $(this).serialize();    


  return false;
});

data
将是一个包含您所需信息的数组,我建议您使用
console.log(data)
,这样您就可以看到它的所有结构,然后可以根据需要使用它,例如:

if(data.something == anything){
    doThis();
}

我强烈建议添加一个
在javascript语句的末尾

如果与表单相关的JS位于文件
signupValidation.JS
中,则需要将包含该文件的脚本调用移动到jquery include之后

我可能也会清理一下表单代码:

$('form#signup').on('submit', function(event){
  event.preventDefault();
  var $input = $(this).find('[name=username]');
  console.log($input.val());
  alert($input.val());
})

您可能也有兴趣查看。

代码有问题[表单提交没有问题]

$input.username
对于引用其他元素的jQuery无效

var usernameInput = $input.filter('[name="username"]');
看起来您没有在document.ready上添加代码,因此您可能没有将其附加到任何内容。将其更改为:

jQuery( function() {
    $form = $('form#signup');
    $form.submit(function(event){
    });
}

看起来您在jQuery代码之前包含了验证代码。我敢打赌,在浏览器中查看JavaScript控制台会有一些很好的错误消息。

像其他人一样,我很幸运地使用了这样的代码:

$(document).ready(function(){
    // Prevent form submission
    $( "form" ).submit(function( event ) {
      event.preventDefault();
    });
});

防止表格提交。但是,现在页面上的脚本在你背后添加一些糖果涂层的功能,比如动画和HTML表单的“甩掉”效果,这是很常见的。在这种情况下,这些脚本可能会遇到阻碍,因为它们可能有自己的javascript fu用于提交将阻止表单提交。是的,但有时会发生更多情况,
return false
也将作为
事件。preventPropagation();event.preventDefault()
和另一个我现在记不起来的函数,所以这样做更安全way@gilbertbw添加了如何从表单中获取数据,请检查如何使用数据变量?吹毛求疵:使用分号!不使用它们是一种不好的做法,如果您想要压缩代码,您将需要它们。在jquery准备就绪时运行我的代码修复了提交问题,我仍然习惯于异步编码的想法
$(document).ready(function(){
    // Prevent form submission
    $( "form" ).submit(function( event ) {
      event.preventDefault();
    });
});