同一页面上的两个表单 - 错误消息仅在第一个表单中可见

时间:2016-09-07 13:46:08

标签: php jquery ajax

我在不同的模态上有两个步骤形式。 第一个(#form1)上的三个步骤和第二个上的三个步骤(#form2)。 所有输入和具有不同名称和ID的元素。 与验证页面的链接(一步一步)正在起作用。我的问题只是错误消息不会出现在第二个表单上。我使用错误容器id(一个id也是表单)进行了验证。 一个想法为什么? 我尝试通过编写form2的错误数组2来解决,但没有可见的错误消息。

 $(".step1").click(function() {      

      var data = {
        'data1'   : jQuery("input[name=data1]:checked", "#forml").val(),
        'data2' : jQuery('#data2').val(),
        'data3'  : jQuery('#data3').val(),
        };

        jQuery.ajax({
        url : '/mySite/parsers/check.php',
        method : 'POST',
        type    : 'POST',
        data : data,
        success : function(data){
      if (data != 'passed') {
        jQuery('#list_errors').html(data);
        }
     if (data.result == 'passed') {
        $(".frm").hide("fast");
        $("#step2").show("slow");
        $(".open1").css("display","none");
        $(".open2").css("display","inline-block");

      }
    },
    error : function(){
        alert('no working.'); }
        });

    });

2 个答案:

答案 0 :(得分:2)

这是因为您使用divID上输出错误。 ID的{​​{1}}在单个页面上应该是唯一的。

jQuery的作用是,它使用DIVs ID更新第一个 DIV,并保留第二个模式中的第二个。

解决方案:

为每个list_errors使用不同的IDs或使用class的{​​{1}},并使用DIVparent() jQuery函数访问它。

答案 1 :(得分:0)

您必须提及您需要以何种形式显示错误。同时将id='list_errors'更改为class='list_errors',因为在一个页面中使用相同的ID并不好。

$(" .step1")。点击(function(){

  var data = {
    'data1'   : jQuery("input[name=data1]:checked", "#forml").val(),
    'data2' : jQuery('#data2').val(),
    'data3'  : jQuery('#data3').val(),
    };

    jQuery.ajax({
    url : '/mySite/parsers/check.php',
    method : 'POST',
    type    : 'POST',
    data : data,
    success : function(data){
  if (data != 'passed') {
    $(this).find('.list_errors').html(data);
    }
 if (data.result == 'passed') {
    $(".frm").hide("fast");
    $("#step2").show("slow");
    $(".open1").css("display","none");
    $(".open2").css("display","inline-block");

  }
},
error : function(){
    alert('no working.'); }
    });

});