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

时间:2022-11-10 13:00:56

一,动态生成JS写法

  <script type="text/javascript">
var numlist = new Array(, , , );
function Additional() {
var num = $("#AdditionalNum").val(); //定义的隐藏的保存当前在页面上存在的数量,最多五个
if (num == ) {
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 = ; i < obj.length - ; i++) {
if (obj[i] > obj[i + ]) {
var temp = obj[i];
obj[i] = obj[i + ];
obj[i + ] = temp;
}
}
}
</script>

二,MCV后台获取代码

        public ActionResult Test(FormCollection collection)
{
//var inputCount = 0; //可以动态获取文本框的数量,这里定义为五个
var inputValues = new List<string>();//将提交过来的输入框的值放到这个集合 for (int i = ; i <= ; i++)
{
if (!string.IsNullOrEmpty(collection["Test" + i]))
{
inputValues.Add(collection["Test" + i]);
}
}
return RedirectToAction("Index");
}

三,总结

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

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