Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery在动态创建的select上添加验证规则_Javascript_Jquery - Fatal编程技术网

Javascript Jquery在动态创建的select上添加验证规则

Javascript Jquery在动态创建的select上添加验证规则,javascript,jquery,Javascript,Jquery,我在创建所需的动态添加输入时遇到问题。尤其是“选择”输入 我已经尝试过手动检查(wojqueryvalidate)提交的输入是否正确,但我遇到了同样的问题。“required”类也没有帮助 以下是html: + - 环境: 选择1 选择2 选择3 以下是我的js: $(document).ready(function() { $("#addRow").click(function() { var str = "<tr>\n" + "

我在创建所需的动态添加输入时遇到问题。尤其是“选择”输入

我已经尝试过手动检查(wojqueryvalidate)提交的输入是否正确,但我遇到了同样的问题。“required”类也没有帮助

以下是html:


+
-
环境:
选择1
选择2
选择3
以下是我的js:

$(document).ready(function() {
  $("#addRow").click(function() {

    var str = "<tr>\n" +
      "                <td id=\"selecttd\">\n" +
      "                    <select name=\"selectbox[]\" class='selectdyna required' data-selected=\"\">\n" +
      "                        <option value=\"\" selected=\"selected\" >env :</option>\n" +
      "                        <option value=\"1\">option1</option>\n" +
      "                        <option value=\"2\">option2</option>\n" +
      "                        <option value=\"3\">option3</option>\n" +
      "                    </select>\n" +
      "                </td>\n" +
      "            </tr>";
    $("#tableex").append(str)
     $('#myform').validate();
        $('.selectdyna').rules('add',  { 'required': true });
  })
  $("#deleteRow").click(function() {
    if ($("#tableex tr").length > 1) {
      $("#tableex tr:last").remove();

    } else {
      alert("there must been one line minimum.")
    }
  })
})
$(文档).ready(函数(){
$(“#添加行”)。单击(函数(){
var str=“\n”+
“\n”+
“\n”+
“环境:\n”+
“选项1\n”+
“选项2\n”+
“选项3\n”+
“\n”+
“\n”+
"            ";
$(“#tablex”).append(str)
$('#myform').validate();
$('.selectdyna').rules('add',{'required':true});
})
$(“#删除行”)。单击(函数(){
如果($(“#tablex tr”).长度>1){
$(“#tablex tr:last”).remove();
}否则{
警报(“必须至少有一行。”)
}
})
})

这里有一个指向小提琴的链接:

我不明白为什么您需要这样的下拉列表名称。 您可以按照下面的演示进行操作

$(document).ready(function() {
  $("#addRow").click(function() {
   var count= $("#tableex tr").length+1;
    var str = "<tr>\n" +
      "                <td id=\"selecttd\">\n" +
      "                    <select name=\"selectbox"+count+"\" class='selectdyna required' data-selected=\"\">\n" +
      "                        <option value=\"\" selected=\"selected\" >env :</option>\n" +
      "                        <option value=\"1\">option1</option>\n" +
      "                        <option value=\"2\">option2</option>\n" +
      "                        <option value=\"3\">option3</option>\n" +
      "                    </select>\n" +
      "                </td>\n" +
      "            </tr>";
    $("#tableex").append(str)
     $('#myform').validate();
        $('.selectdyna').rules('add',  { 'required': true });
  })
  $("#deleteRow").click(function() {
    if ($("#tableex tr").length > 1) {
      $("#tableex tr:last").remove();

    } else {
      alert("there must been one line minimum.")
    }
  })
})
$(文档).ready(函数(){
$(“#添加行”)。单击(函数(){
var计数=$(“#tableex tr”)。长度+1;
var str=“\n”+
“\n”+
“\n”+
“环境:\n”+
“选项1\n”+
“选项2\n”+
“选项3\n”+
“\n”+
“\n”+
"            ";
$(“#tablex”).append(str)
$('#myform').validate();
$('.selectdyna').rules('add',{'required':true});
})
$(“#删除行”)。单击(函数(){
如果($(“#tablex tr”).长度>1){
$(“#tablex tr:last”).remove();
}否则{
警报(“必须至少有一行。”)
}
})
})

我不明白你为什么要这样要求下拉列表的名称。 您可以按照下面的演示进行操作

$(document).ready(function() {
  $("#addRow").click(function() {
   var count= $("#tableex tr").length+1;
    var str = "<tr>\n" +
      "                <td id=\"selecttd\">\n" +
      "                    <select name=\"selectbox"+count+"\" class='selectdyna required' data-selected=\"\">\n" +
      "                        <option value=\"\" selected=\"selected\" >env :</option>\n" +
      "                        <option value=\"1\">option1</option>\n" +
      "                        <option value=\"2\">option2</option>\n" +
      "                        <option value=\"3\">option3</option>\n" +
      "                    </select>\n" +
      "                </td>\n" +
      "            </tr>";
    $("#tableex").append(str)
     $('#myform').validate();
        $('.selectdyna').rules('add',  { 'required': true });
  })
  $("#deleteRow").click(function() {
    if ($("#tableex tr").length > 1) {
      $("#tableex tr:last").remove();

    } else {
      alert("there must been one line minimum.")
    }
  })
})
$(文档).ready(函数(){
$(“#添加行”)。单击(函数(){
var计数=$(“#tableex tr”)。长度+1;
var str=“\n”+
“\n”+
“\n”+
“环境:\n”+
“选项1\n”+
“选项2\n”+
“选项3\n”+
“\n”+
“\n”+
"            ";
$(“#tablex”).append(str)
$('#myform').validate();
$('.selectdyna').rules('add',{'required':true});
})
$(“#删除行”)。单击(函数(){
如果($(“#tablex tr”).长度>1){
$(“#tablex tr:last”).remove();
}否则{
警报(“必须至少有一行。”)
}
})
})

Jquery验证对输入的name属性起作用。您在每个输入中都给出了相同的名称,这就是为什么它会显示单个错误,当您选择其中一个时,错误就会隐藏。Jquery验证将对输入的name属性进行验证。您在每个输入中都给出了相同的名称,这就是为什么它显示单个错误,当您选择其中一个时,错误将被隐藏。背后的想法是在我发布表单时在数组中获得结果。我还以为这是唯一的办法。我想我会试试你的方法,因为它似乎已经解决了我的许多其他问题。我想这是一个很好的解决方案,但我也想了解为什么我的解决方案不起作用。非常感谢您的帮助。背后的想法是在我发布表单时以数组形式获得结果。我还以为这是唯一的办法。我想我会试试你的方法,因为它似乎已经解决了我的许多其他问题。我想这是一个很好的解决方案,但我也想了解为什么我的解决方案不起作用。谢谢你的帮助。