Javascript Jquery停止提交并从表单获取数据
我正在尝试使用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
$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();
});
});