无法使Javascript函数正常工作

时间:2019-03-20 19:01:06

标签: javascript c# asp.net razor model-view-controller

最初;我有一个试图调用函数的按钮,但嵌套在表单内部,默认情况下,该按钮将触发提交表单事件: 建议是添加一个  到按钮标签,就可以解决原来的问题。

我的新问题是:

所以我有这些按钮: j

我想让这些按钮触发是否隐藏日期字段。

    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)">

2 个答案:

答案 0 :(得分:1)

请使用输入标签,而不是Button标签,并在标签中添加type =“ button”,这样可以解决您的问题。我链接了一个网站以供参考。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/button

答案 1 :(得分:1)

您应该在引号中传递#@ViewBag.QuestionID,然后将其视为字符串参数

否则,将其视为变量,从而产生错误。