Javascript/AJAX/JQuery能否检测是否键入了表单?
我试图修改表单字段的内容,并从控制台提交表单。每当我使用Jquery或JS修改字段并提交时,页面只识别手动输入的值 下面的代码应导致字段“lastField”作为“伪造条目”提交,但该字段作为空白提交Javascript/AJAX/JQuery能否检测是否键入了表单?,javascript,jquery,ajax,forms,post,Javascript,Jquery,Ajax,Forms,Post,我试图修改表单字段的内容,并从控制台提交表单。每当我使用Jquery或JS修改字段并提交时,页面只识别手动输入的值 下面的代码应导致字段“lastField”作为“伪造条目”提交,但该字段作为空白提交 $('submit').click(function( event ) { event.preventDefault(); $('#lastField').val('spoofed entry'); $('submit').submit(); //I also tried
$('submit').click(function( event ) {
event.preventDefault();
$('#lastField').val('spoofed entry');
$('submit').submit(); //I also tried .click();
});
有没有办法将手动按键输入复制到字段中?我认为有什么东西在检测条目的方法-我也认为它正在阻止该条目。尝试改用ID,匹配页面中的html
$('#submit_button').click(function() {
$('#lastField').val('spoofed entry');
$('#form').submit();
});
首先,您应该将事件侦听器放在表单上,而不是“提交”按钮上,如下所示:
$('form').on('submit', function(e){
e.preventDefault();
var form = $(this)
//... do your thing
form.submit();
});
另外,我注意到$().val()有一些奇怪的异步行为,因此您可能希望在超时后包装$(this).submit()
,以便让代码有机会实际执行所有操作
setTimeout(函数(){
表单提交();
}, 50);
因此,总的来说:
$('form').on('submit', function(e){
e.preventDefault();
var form = $(this)
$('#lastField').val('spoofed entry')
setTimeout(function(){
form.submit();
}, 50);
});
不过,请先尝试一下,不要超时,因为这很有意思,但我记得这在过去对我有帮助。经过大量搜索和修补,我发现该表单是angular JS的ngsubmit表单。)。触发器(“输入”);在使用JS/JQuery设置值后,必须使用
添加后,angular检测到表单更改。您真正想做什么?我不明白你的意思。但是您可以定义一个全局变量,并在每个键上更改该变量的值。请参阅JQuery的keyUp方法和更新值。在formwhat's
$('submit')
上使用该变量?一节课?身份证?超人?$('submit')什么都不是,所以代码不会运行,你只需点击一下就可以发送一个基本的空表单,这个JS代码是无用的。看起来你需要阅读JQuery文档来实现一个有效的解决方案,或者粘贴你的代码来修复,这很简单