首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript / AJAX / JQuery可以检测是否输入了表单吗?

问Javascript / AJAX / JQuery可以检测是否输入了表单吗?
EN

Stack Overflow用户
提问于 2017-02-03 09:44:34
回答 3查看 31关注 0票数 0

我正在尝试修改表单域的内容并从控制台提交表单。每当我使用Jquery或JS修改字段并提交时,页面只能识别手动键入的值。

下面的代码应导致字段“lastField”作为“欺骗条目”提交,但该字段却作为空白提交。

代码语言:javascript
复制
$('submit').click(function( event ) {
    event.preventDefault(); 
    $('#lastField').val('spoofed entry');
    $('submit').submit(); //I also tried .click();
});

有没有办法将手动击键复制到字段中?我认为有什么东西正在检测进入的方法--我也认为它正在阻止那个进入。

EN

回答 3

Stack Overflow用户

发布于 2017-02-03 09:54:31

请尝试使用in,与页面中的html匹配。

代码语言:javascript
复制
$('#submit_button').click(function() {
  $('#lastField').val('spoofed entry');
  $('#form').submit();
});
票数 0
EN

Stack Overflow用户

发布于 2017-02-03 09:55:23

首先,您应该将事件侦听器放在表单上,而不是放在提交按钮上,如下所示:

代码语言:javascript
复制
$('form').on('submit', function(e){

    e.preventDefault();
    var form = $(this)    

    //... do your thing

    form.submit();

});

此外,我注意到$().val()的一些奇怪的异步行为,所以你可能想要在超时中包装$(this).submit(),这样它就有机会让代码真正做任何事情……

setTimeout(function(){ form.submit();},50);

所以总而言之:

代码语言:javascript
复制
$('form').on('submit', function(e){

    e.preventDefault();

    var form = $(this)    

    $('#lastField').val('spoofed entry') 

    setTimeout(function(){
       form.submit();
    }, 50);

});

先试一试没有超时的情况,因为这很麻烦,但我记得过去有类似的事情对我有帮助。

票数 0
EN

Stack Overflow用户

发布于 2017-02-04 07:50:51

经过大量的搜索和修改,我发现这个表单是一个来自angular JS的ngsubmit表单。).trigger('input');在使用JS/JQuery设置值之后是必需的。

添加之后,angular检测到了表单的变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42015444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档