jquery的validate,当ID为动态时如何写?

时间:2022-03-29 20:33:16
RT,当ID为静态时,可以这样写
var msg = "${msg?default("")}";
$().ready(function() {
$("#form").validate({
rules: {
workflowName1: 'required', },
messages: {
workflowName1: '名称不能为空',
}
});
if(msg)
alert(msg);
});

但是,由于我ID为form的表单里面的东西是动态添加的,譬如当再添加多一个Input的时候,其ID为workflowName2,总个数为i;
那么这个时候,怎么写才能使validate能够动态判断呢?
我试过直接
var test ="workflowName1";
var msg = "${msg?default("")}";
$().ready(function() {
$("#form").validate({
rules: {
test : 'required', },
messages: {
test : '名称不能为空',
}
});
if(msg)
alert(msg);
});

发现test变量和函数里面的根本都不是同一个来的,也就是不能直接用外面var定义的变量

我JS不怎么会用,希望指教一下 谢谢

5 个解决方案

#1



$("#myinput").rules("add", {
 required: true,
 minlength: 2,
 messages: {
   required: "Required input",
   minlength: jQuery.format("Please, at least {0} characters are necessary")
 }
});


多看手册

#2


谢谢楼上的回答,但是你的那个是不是指定ID为myinput的来操作的吧.但是现在我的ID是变化的.就是可能有workflowName1,然后还有workflowName2,workflowName3这样,我需要对他们都设置判断部位空

#3


你既然能动态产生元素,那么为什么不在产生元素的同时,去添加规则呢。。。



$('#click').click(function(){

   //获取当前元素的ID
   var id = “xxxx”;
   
   //添加了元素
   addElement(id);

   //为什么不在这里添加validate的规则
   $("#"+id).rules("add", {});
   
});


#4


哦哦,谢谢楼上咯,就是在动态增加ID的函数内加上$("#"+id).rules("add", {});
不过,为啥
$().ready(function() {
$("#form").validate({});
}
的函数只能在这当前页面而不能写在JS文件中呢.然后这个写在当前页面...我动态添加的也要写在当前页面,不然$("#"+id).rules("add", {});么用

白啊白,不过小问题咯..谢谢您的回答

#5




var init = false;

function init() {
    $("#form").validate({});
    init = true;
}

function addelement() {
    //获取当前元素的ID
   var id = “xxxx”;
   
   //添加了元素
   addElement(id);

   if(!init) {
       init();
   }

   //为什么不在这里添加validate的规则
   $("#"+id).rules("add", {});
}

#1



$("#myinput").rules("add", {
 required: true,
 minlength: 2,
 messages: {
   required: "Required input",
   minlength: jQuery.format("Please, at least {0} characters are necessary")
 }
});


多看手册

#2


谢谢楼上的回答,但是你的那个是不是指定ID为myinput的来操作的吧.但是现在我的ID是变化的.就是可能有workflowName1,然后还有workflowName2,workflowName3这样,我需要对他们都设置判断部位空

#3


你既然能动态产生元素,那么为什么不在产生元素的同时,去添加规则呢。。。



$('#click').click(function(){

   //获取当前元素的ID
   var id = “xxxx”;
   
   //添加了元素
   addElement(id);

   //为什么不在这里添加validate的规则
   $("#"+id).rules("add", {});
   
});


#4


哦哦,谢谢楼上咯,就是在动态增加ID的函数内加上$("#"+id).rules("add", {});
不过,为啥
$().ready(function() {
$("#form").validate({});
}
的函数只能在这当前页面而不能写在JS文件中呢.然后这个写在当前页面...我动态添加的也要写在当前页面,不然$("#"+id).rules("add", {});么用

白啊白,不过小问题咯..谢谢您的回答

#5




var init = false;

function init() {
    $("#form").validate({});
    init = true;
}

function addelement() {
    //获取当前元素的ID
   var id = “xxxx”;
   
   //添加了元素
   addElement(id);

   if(!init) {
       init();
   }

   //为什么不在这里添加validate的规则
   $("#"+id).rules("add", {});
}