javascript - 提交包含动态 ID 的 HTML 表单

标签 javascript jquery ajax

我有 2 个包含动态 ID 属性的 HTML 表单。我想要的是通过 AJAX 调用分别存储来自每个 HTML 表单的数据。目前,当我使用静态 ID 名称“surveyImage”时,AJAX 调用仅适用于一种 HTML 表单。

我不知道如何使用 jQuery 为每个表单单独调用方法 submit() 。有什么办法可以解决这个问题吗?

id=“surveyImage13”的表单

 <form method="POST" action="http://localhost/1/467/survey" accept-charset="UTF-8" id="surveyImage13" role="form" class="form-material m-t-40" novalidate="novalidate"> 
    <div class="row">   
        <div class="col-lg-12">
            <input name="questionnaire_pivot_id" id="questionnaire_pivot_id13" class="questionnaire_pivot_id" type="hidden" value="13">     
            <input name="questionnaire_id" id="questionnaire_id" class="questionnaire_id" type="hidden" value="1">
            <input name="survey_image_id" id="survey_image_id" class="survey_image_id" type="hidden" value="467">

 ...                
            <div class="row" style="margin-bottom: 5%;">
                <div class="col-xl-2 col-lg-3 col-md-3">
                     <button id="add" class="btn  btn-default btn-md-6" type="submit" style="margin-top: 11%;">Save</button>
                </div>           
            </div>       
     </form>

ID=“surveyImage18”的表单

<form method="POST" action="http://localhost/2/467/survey" accept-charset="UTF-8" id="surveyImage18" role="form" class="form-material m-t-40" novalidate="novalidate"> 
      <div class="row">   
        <div class="col-lg-12">
            <input name="questionnaire_pivot_id" id="questionnaire_pivot_id18" class="questionnaire_pivot_id" type="hidden" value="18">     
            <input name="questionnaire_id" id="questionnaire_id" class="questionnaire_id" type="hidden" value="2">
           <input name="survey_image_id" id="survey_image_id" class="survey_image_id" type="hidden" value="467">

...

            </div>
        </div>

    <div class="row" style="margin-bottom: 5%;">
        <div class="col-xl-2 col-lg-3 col-md-3">
             <button id="add" class="btn  btn-default btn-md-6" type="submit" style="margin-top: 11%;">Save</button>
        </div>           
    </div>       
</form>

AJAX 调用

<script type="text/javascript">
 $("#surveyImage13").validate({
                    rules: {
                         'responses[]': {
                            required:true                         
                        }
                    },
                     // change name of error class that is assigned to input fields
    errorClass: 'error_validate',

    errorPlacement: function (label, element) {


        // default
        if (element.is(':radio')) {
            label.insertAfter(element.parent('.form-check-inline'));
        }
        else {
            label.insertAfter(element);
        }
    }

     });
</script>


<script type="text/javascript">

     $("#surveyImage13").submit(function(e) {
        e.preventDefault();

        var route=$('#surveyImage13').attr('action');
        var pivot_id = $("#questionnaire_pivot_id").val(); 



        // Get values of checked checkboxes
        var responses = $('.form-check-inline input').filter(':checked').map(function() {
          return this.value;
        }).get();

     var isFormValid = $("#surveyImage13").valid();

    if(isFormValid){

        $.ajax({
          type: "POST",
          url: route, 
          data: {'responses': responses, 'pivot_id': pivot_id},
          success: function(response){


            $("#surveyImageForm").css("display", "none");
            $("#surveyImageAjax").css("display", "block");

            $('#SurveyTableAjaxColumn1').append(response[1]); 
            $('#SurveyTableAjaxColumn2').append(response[0]); 
          },
          error: function(){
            console.log('Error');
          }
        })
        }
     });

</script>

最佳答案

为什么不给你的表单一个通用的

$('.myClass').validate({ ...
})


$('.myClass').submit(...

关于javascript - 提交包含动态 ID 的 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320644/

相关文章:

javascript - 如何在 Javascript 中禁用 RadioButtonList 中的某个单选按钮

asp.net-mvc - PRG 模式是否与 AJAX 表单帖子不兼容?

javascript - 通过主干路由器查看更改不断恢复到主页

javascript - 使用 JQuery 的 KineticJS 动画

javascript - 当我在对象数组中键入时,如何查看数组的每个实例中是否存在字符?

jquery - 组合文本框和下拉列表

javascript - 使用 axios 进行多个请求,而不等待所有请求在数组列表中完成?

javascript - 切换到深色模式 HTML 时添加动画

javascript - 使用查询将对象数组发布到 asp.net-mvc Controller 操作的正确方法是什么?

javascript - 停止从方法调用的 ajax 请求 (ES6)