Javascript 使用jquery进行克隆验证部分工作 最初,当用户单击“下一步”按钮时,它将显示消息 因为您已经错过了7个字段。请在提交前填写 如果用户单击“添加更多”按钮,则将获得克隆,而不包含 如果用户单击“下一步”按钮,请填写任何必填字段。这个 消息仍然显示您已错过7个字段。请先填好 提交 一旦用户开始填写克隆字段中的任何字段,他 从clone和original div中漏掉了其余的必填字段,然后用户单击next按钮,它将显示漏掉了这么多字段
我试着在零钱上加上选择器,但还是不走运Javascript 使用jquery进行克隆验证部分工作 最初,当用户单击“下一步”按钮时,它将显示消息 因为您已经错过了7个字段。请在提交前填写 如果用户单击“添加更多”按钮,则将获得克隆,而不包含 如果用户单击“下一步”按钮,请填写任何必填字段。这个 消息仍然显示您已错过7个字段。请先填好 提交 一旦用户开始填写克隆字段中的任何字段,他 从clone和original div中漏掉了其余的必填字段,然后用户单击next按钮,它将显示漏掉了这么多字段,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试着在零钱上加上选择器,但还是不走运 $('.cloned_field').on('input','.cloned_div',function(e){ if($(this).val().trim().length > 0) { $(this).addClass("required_field"); var parent_div = $(this).closest("div.cloned-row1").find("input");
$('.cloned_field').on('input','.cloned_div',function(e){
if($(this).val().trim().length > 0)
{
$(this).addClass("required_field");
var parent_div = $(this).closest("div.cloned-row1").find("input");
parent_div.each(function () {
$(this).addClass("required_field");
});
}
check_for_validation_removal($(this));
bind_validation();
});
请帮助我哪里做错了
提前谢谢
这里是fiddle我认为问题是,只有当add-on部分中的字段有值时,才应该验证add-on字段。因此,我更新了
bind\u validation()
,添加了一个新函数addRemoveCloneValidation()
,并删除了与问题无关的allot(尽管您可能仍然需要它)
添加新行时,将调用bind\u validation
,然后调用addRemoveCloneValidation
。然后,根据任何输入是否有值,添加或删除对所有克隆输入的验证
编辑
在你最后的评论之后
2) 当用户单击addmore按钮并单击next按钮时
验证结果应该显示您已丢失6个字段。请填写
因为用户没有填写任何必填项,所以在提交之前
克隆div中的字段
然后,您还需要将“学位日期”从必填项中删除,或者在克隆时不设置“学位日期”
$clone.find("input.deg_date")
.removeClass('hasDatepicker')
.removeData('datepicker')
.unbind()
.datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
yearRange: "-100:+0",
changeYear: true,
maxDate: new Date(),
showButtonPanel: false,
});//.val(fulldate); <--remove
$clone.find(“输入度日期”)
.removeClass('hasDatepicker')
.removeData(“日期选择器”)
.unbind()
.日期选择器({
日期格式:“年月日”,
变化月:对,
年份范围:“-100:+0”,
变化年:是的,
maxDate:新日期(),
showButtonPanel:false,
});//.val(完整日期);有什么问题吗?我已经试过你的提琴了,正确的字段数是按要求显示的?我不确定你在问什么。在小提琴中,如果我没有输入任何内容并单击“下一步”,它会显示我缺少6个字段,这看起来是正确的。如果我单击“添加更多”,一些新字段将被添加,单击“下一步”将数字更新为9(看起来仍然正确).Hi all最初,当用户单击“下一步”按钮时,它将正常工作,但一旦用户单击“克隆”按钮,再次单击“下一步”按钮,则应在中显示要验证的4个字段,但如果用户填写克隆div中的任意一个必填字段并单击下一个字段,则问题出现在第二个场景中验证克隆div和原始div,它应该说您有7个字段来验证这一点working@Mahadevan-为我工作很好。你到底在问什么?简明扼要。这是一篇交叉文章吗?谢谢你的努力,但仍然不符合我的问题。请看有三种情况1)最初,当用户单击“下一步”按钮时,错误消息应显示您已错过6个字段。请在提交前填写2)当用户单击“添加更多”按钮并单击“下一步”按钮进行验证时,应显示您已错过6个字段。请在提交前填写,因为用户尚未填写克隆div中的任何必填字段3)如果用户开始填写克隆中的任何必填字段,请单击“下一步”,它应显示您已错过10个字段。这就是它的工作原理。。当您克隆教育信息时,它会在日期字段中设置一个值,这是必需的,因此该部分是必需的。尝试删除日期,该部分的验证将消失。您几乎就要完成了。您可以告诉我,在测试分数字段中,它只能接受数字如何执行此操作当用户单击“添加较少”按钮时,验证未检测到分数输入type=“number”:(
function bind_validation(){
$(".required_field ").each(function(){
$(this).rules("add", {
required:true,
});
});
addRemoveCloneValidation();
}
function addRemoveCloneValidation(){
$('div[id^="added"]').each(function(index, item){
var needsValidation = false;
$.each($(item).find('.required_field'), function(index, item){
if($(item).val())
needsValidation = true;
$(item).change(addRemoveCloneValidation);
});
$.each($(item).find('.required_field'), function(index, item){
$(item).rules("add", {
required:needsValidation,
});
if(!needsValidation)
$(item).removeClass('errRed');
});
});
}
$clone.find("input.deg_date")
.removeClass('hasDatepicker')
.removeData('datepicker')
.unbind()
.datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
yearRange: "-100:+0",
changeYear: true,
maxDate: new Date(),
showButtonPanel: false,
});//.val(fulldate); <--remove