存在Javascript语法错误
表单元素:
@Html.DropDownListFor(model => model.UNIT,
new SelectList(ViewBag.UnitList, "Value", "Text"),
"-- Select a Unit --",
new {onchange = "showSelectedValue" })
使用Javascript:
function showSelectedValue() {
alert('Selected: ' + @Model.UNIT);
// Syntax error underlines the closing parentethesis of the alert function
}
我想查看使用函数UNIT
选择showSelectedValue
的内容,
答案 0 :(得分:1)
Razor执行服务器端,javascript执行客户端,因此您无法将它们混合在一起;您的代码会将@Model.UNIT
的初始值作为字符串文字放入脚本中,看起来像alert('Selected: ' + Whatever UNIT is);
,这是一个语法错误,因为Whatever UNIT is
不是用引号括起来。
最简单的方法是将select
作为参数传递给onchange
函数。
@Html.DropDownListFor(model => model.UNIT,
new SelectList(ViewBag.UnitList, "Value", "Text"),
"-- Select a Unit --",
new {onchange = "showSelectedValue(this)" })
function showSelectedValue(ddList) {
alert('Selected: ' + ddList.value);
}
答案 1 :(得分:1)
这可能会有所帮助:
@Html.DropDownListFor(model => model.UNIT
, new SelectList(ViewBag.UnitList, "Value", "Text")
, "-- Select a Unit --"
, new { @id = "ddUnit" });
脚本:
$(document).ready(function () {
$("#ddUnit").change(function () {
alert($(this).val());
});
});
如果要直接获取值,请在脚本中使用:
var value = $("#ddUnit").val();