javascript - 如何修复声明或声明预期错误
问题描述
我想用动态下拉列表附加表格行,但在 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>");
});
解决方案
在一个虚拟项目中测试了这种方法后,我发现了两个问题:
- 您需要用单引号而不是双引号来包装您的字符串,即将 .append("...") 更改为 .append('...') 。
- 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>');
});
推荐阅读
- android - NestedScrollView 不使用 ConstraintLayout 滚动
- masstransit - Publish 应该与 MassTransit 的 Mediator 一起使用吗?
- sql - WHERE 包含某些值,CASE 包含附加值
- go - 如何将具有多个 api 端点的 Golang 服务器部署为单个云功能?
- node.js - AWS Lambda nodeJS 超时,不知道为什么。日志没用
- leaflet - 传单显示多个标记和 setView
- c# - 使用多态获取相同类型的实例
- swift - 带有键值的 Swift 字符串,这种格式标准吗?我怎样才能得到它作为字典?
- arm - 如何从startup.s导入标识符(到main.c)
- xamarin.forms - Xamarin 表单 SfDataGrid 自定义映射