【发布时间】:2019-08-11 14:16:07
【问题描述】:
原来;我有一个按钮试图调用一个函数,但嵌套在表单中,默认情况下该按钮将触发提交表单事件: 建议是添加一个 到按钮标签,我能够解决我原来的问题。
我的新问题是:
我想让这些按钮触发日期字段是否隐藏。
else if (question.Expected_Answer_Type == "Date")
{
<input type="button" value="Add a Date @ViewBag.QuestionID" onclick="makeDateVisible(#@ViewBag.QuestionID)">
@Html.TextBoxFor(m => m.QuestionnaireAnswers[i].Answer, Model.Date.ToString("M/d/yyyy"), new { @class = "form-control date hidden", @id = ViewBag.QuestionID }) if (Model.QuestionnaireAnswers == null)
{
<script>
$(document).ready(function () {
$('#@(ViewBag.QuestionID)')
.val("@(DateTime.Today.ToShortDateString())");
}
);
function makeDateVisible(@ViewBag.QuestionID) {
alert("Hello");
}
</script>
}
}
我似乎无法触发 makeDateVisible 中的警报。
在浏览器中...... 我得到错误: 未捕获的 SyntaxError:无效或意外的令牌 并且红线出现在这一行的末尾:
<input type="button" value="Add a Date @ViewBag.QuestionID" onclick="makeDateVisible(#@ViewBag.QuestionID)">
【问题讨论】:
-
我相信天生提交的表单中的按钮。您可以在每个
button元素上使用event.preventDefault,或者您可以简单地更改标记并将button标记替换为input标记与type的button标记 -
将 type="button" 添加到按钮。他们不需要为此工作的输入。这应该可以防止 zfrisch 解释的行为。
标签: javascript c# asp.net razor model-view-controller