【问题标题】:Trouble getting Javascript function to work无法让 Javascript 函数正常工作
【发布时间】: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 标记与typebutton 标记
  • type="button" 添加到按钮。他们不需要为此工作的输入。这应该可以防止 zfrisch 解释的行为。

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


【解决方案1】:

使用输入标签代替 Button 标签,并将 type=“button” 添加到标签中,这应该可以解决您的问题。我链接了一个网站以供参考。

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

【讨论】:

  • 我已经更新了这个问题......如果你能让我知道你认为这里发生了什么——我很乐意将此标记为已接受的答案。 :)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多