如何修复声明或语句预期错误

时间:2019-05-31 22:30:53

标签: javascript jquery asp.net-mvc append

我想用动态下拉列表附加表行,但是在jQuery代码中出现错误声明或语法错误。如何解决?

$(".addtable").click(function () {
    debugger;
     $("#fields tbody").append("<tr><td>@Html.DropDownListFor(m => m.MedID, ViewBag.MedicineList as List<SelectListItem>, new { @class = "form-control", placeholder = "Category", id = "manfac", required = "required" })</td><td><input type="number" class="form-control" name=" Quantity" required></td><td><button type="button" class="btn btn-primary addtable">Add More</button><a href="javascript:void(0);" class="btn btn-primary remCF">Remove</a></td></tr>");

});

1 个答案:

答案 0 :(得分:0)

在一个虚拟项目中测试了这种方法之后,我发现了两个问题:

  1. 您需要使用单引号而不是双引号将字符串引起来,即,将.append(“ ...”)更改为.append('...')。
  2. Html.DropDownListFor()产生一个具有换行符的字符串,这会导致javascript字符串中出现换行符,从而引发语法错误。因此,您需要执行以下操作: .append('@(Html.Raw(Html.DropDownListFor(...).ToString().Replace(System.Environment.NewLine, "")))'),看起来很难看,但是可以在我的虚拟项目中使用。`

所以尝试:

$(".addtable").click(function () {
debugger;
 $("#fields tbody").append('<tr><td>@(Html.Raw(Html.DropDownListFor(m => m.MedID, ViewBag.MedicineList as List<SelectListItem>, new { @class = "form-control", placeholder = "Category", id = "manfac", required = "required" }).ToString().Replace(System.Environment.NewLine, "")))</td><td><input type="number" class="form-control" name=" Quantity" required></td><td><button type="button" class="btn btn-primary addtable">Add More</button><a href="javascript:void(0);" class="btn btn-primary remCF">Remove</a></td></tr>');
});