MVC:页面提交JQ动态生成的输入框的值得解决方案:

一,动态生成JS写法

  <script type="text/javascript">
        var numlist = new Array(2, 3, 4, 5);
        function Additional() {
            var num = $("#AdditionalNum").val();  //定义的隐藏的保存当前在页面上存在的数量,最多五个
            if (num == 5) {
                alert("最多加五个");
                return;
            }
            var deleteNo = numlist.shift();
            num++;
            var append = '<li class="list-group-item"><form class="form-inline" role="form" action="#">';
            append += ' <input type="text" class="form-control"  name="Text' + deleteNo + '" placeholder="名称2"> <input type="text" class="form-control" id="Text4" placeholder="名称2">';
            append += '<input type="button" id="Button1" value="确定" class="btn btn-info"></form></li>';
            $("#AdditionalList").append(append);
            $("#AdditionalNum").val(num);
            Maopao(numlist);
            //alert(num);
        }
        function AdditionalRemove(obj, id) {
            var num = $("#AdditionalNum").val(); //定义的隐藏的保存当前在页面上存在的数量删除是减少
            num--;
            $(obj).parent().parent().parent().parent().remove();  //移除父节点
            $("#AdditionalNum").val(num);       //定义的隐藏的保存当前在页面上存在的数量
            numlist.push(id);
        }
        function Maopao(obj) {
            for (var i = 0; i < obj.length - 1; i++) {
                if (obj[i] > obj[i + 1]) {
                    var temp = obj[i];
                    obj[i] = obj[i + 1];
                    obj[i + 1] = temp;
                }
            }
        }
    </script>

二,MCV后台获取代码

        public ActionResult Test(FormCollection collection)
        {
            //var inputCount = 0; //可以动态获取文本框的数量,这里定义为五个
            var inputValues = new List<string>();//将提交过来的输入框的值放到这个集合

            for (int i = 1; i <= 5; i++)
            {
                if (!string.IsNullOrEmpty(collection["Test" + i]))
                {
                    inputValues.Add(collection["Test" + i]);
                }
            }
            return RedirectToAction("Index");
        }

三,总结

1,用为空性判断,如果输入的为空则会过滤,以至于不会将空值插入到数据库报错

2,前端遍历生成的input的Name不能相同,则需要处理,如上例子

原文地址:https://www.cnblogs.com/May-day/p/6835237.html