jQuery从ajax接收值后自动提交表单

时间:2019-01-30 03:37:21

标签: jquery

我在这里尝试给value = 1手动输入和提交。

然后每次jquery从ajax响应value+1获取值并重新提交。并循环到1000。 使用此代码,我可以成功输入新值,但无法自动提交。

HTML

<input type="number" name="imdo" id="name" value=""/>
<input type="submit" id="submit"/>
<div class="output"></div>

JS

jQuery(document).ready(function($){
$('#submit').on('click',function(event){
 event.preventDefault();
 $('#output').empty();
 var imdo=$("#name").val();
 var ajaxurl='admin-ajax;
$.ajax({
 url:ajaxurl,
 type:'post',
 dataType:'html',
data:{
 action:'wpse_2900_call',
 imdo:imdo,
},
success: function(result){
 $('#output').append(result);
 $('#name').val(result);
 $('#submit').submit(function(){return true;});
}
});
});
});

如何自动提交1000次?

2 个答案:

答案 0 :(得分:1)

只要结果为<1000(未测试),就可以使用.trigger( "click" );

jQuery(document).ready(function($){
  $('#submit').on('click',function(event){
    event.preventDefault();
    $('#output').empty();
    var imdo=$("#name").val();
    var initialValue=$("#name").attr("data-initial");
    var ajaxurl='admin-ajax;
    $.ajax({
      url:ajaxurl,
      type:'post',
      dataType:'html',
      data:{
        action:'wpse_2900_call',
        imdo:imdo,
      },
      success: function(result){
        $('#output').append(result);
        $('#name').val(result);
        if (initialValue == '') {
          $("#name").attr("data-initial", imdo);
          initialValue = imdo;
        }
        var maxRuns = 1000 + parseInt(initialValue);
        if (result < maxRuns) {
          $('#submit').trigger("click");
        }
      }
    });
  });
});

编辑:您需要将data-initial=""添加到#name。您也可以在没有parseInt()的情况下测试代码(仍未经测试)。

答案 1 :(得分:1)

我强烈建议您不要使用此代码。

这是一个基于您建议要做的示例。

var i = 0;
jQuery(document).ready(function($) {
  $('form').on('submit', function(e) {
    e.preventDefault();
    $('#output').empty();
    var imdo = $("#name").val();
    var ajaxurl = 'admin-ajax';
    for (i; i < 1000; i++) {
      console.log(i + ": Call " + ajaxurl + ", " + imdo);
      $.ajax({
        url: ajaxurl,
        type: 'post',
        dataType: 'html',
        data: {
          action: 'wpse_2900_call',
          imdo: imdo,
        },
        success: function(result) {
          console.log(i + ": Result", result);
          $('#output').append(result);
          $('#name').val(result);
          $('form').trigger("submit");
        }
      });
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="number" name="imdo" id="name" value="" />
  <input type="submit" id="submit" />
</form>
<div class="output"></div>

提交表单后(单击或通过 Enter 提交),表单将一直处理,直到i为1000。

警告

您可以DOS Web服务器。或者您可以进行一个递归循环,导致浏览器锁定。同样,我不建议使用此代码。