我在不同的模态上有两个步骤形式。 第一个(#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.'); }
});
});
答案 0 :(得分:2)
这是因为您使用div
在ID
上输出错误。 ID
的{{1}}在单个页面上应该是唯一的。
jQuery的作用是,它使用DIVs
ID更新第一个 DIV
,并保留第二个模式中的第二个。
为每个list_errors
使用不同的IDs
或使用class
的{{1}},并使用DIV
或parent()
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.'); }
});
});