我正在尝试修改表单域的内容并从控制台提交表单。每当我使用Jquery或JS修改字段并提交时,页面只能识别手动键入的值。
下面的代码应导致字段“lastField”作为“欺骗条目”提交,但该字段却作为空白提交。
$('submit').click(function( event ) {
event.preventDefault();
$('#lastField').val('spoofed entry');
$('submit').submit(); //I also tried .click();
});有没有办法将手动击键复制到字段中?我认为有什么东西正在检测进入的方法--我也认为它正在阻止那个进入。
发布于 2017-02-03 09:54:31
请尝试使用in,与页面中的html匹配。
$('#submit_button').click(function() {
$('#lastField').val('spoofed entry');
$('#form').submit();
});发布于 2017-02-03 09:55:23
首先,您应该将事件侦听器放在表单上,而不是放在提交按钮上,如下所示:
$('form').on('submit', function(e){
e.preventDefault();
var form = $(this)
//... do your thing
form.submit();
});此外,我注意到$().val()的一些奇怪的异步行为,所以你可能想要在超时中包装$(this).submit(),这样它就有机会让代码真正做任何事情……
setTimeout(function(){ form.submit();},50);
所以总而言之:
$('form').on('submit', function(e){
e.preventDefault();
var form = $(this)
$('#lastField').val('spoofed entry')
setTimeout(function(){
form.submit();
}, 50);
});先试一试没有超时的情况,因为这很麻烦,但我记得过去有类似的事情对我有帮助。
发布于 2017-02-04 07:50:51
经过大量的搜索和修改,我发现这个表单是一个来自angular JS的ngsubmit表单。).trigger('input');在使用JS/JQuery设置值之后是必需的。
添加之后,angular检测到了表单的变化。
https://stackoverflow.com/questions/42015444
复制相似问题