【问题标题】:Uncaught SyntaxError: Unexpected token !=Uncaught SyntaxError: Unexpected token !=
【发布时间】:2019-02-10 21:05:40
【问题描述】:

我有以下Form,我正在执行Validation。我有以下代码:

<form method="post" asp-action="actionName" asp-controller="controllerName" id="myForm">
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>    
    <div class="card">
        ...
        <div class="row">
            <div class="col-sm-6 m-t-20">
                <div class="fg-line">
                    <label asp-for="Name" class="fg-label" for="name">Name</label>
                        <input asp-for="Name" class="form-control" id="name" name="name" required />
                        <span asp-validation-for="Name" class="text-danger"></span>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-sm-6 m-t-20">
                <div class="fg-line">
                    <label asp-for="Age" class="fg-label" for="age">Age</label>
                        <input asp-for="Age" class="form-control" id="age" name="age" required />
                        <span asp-validation-for="age" class="text-danger"></span>
                </div>
            </div>
        </div>
        ...
    </div>
</form>

<script src="~/js/app.js"></script>

@section Scripts{
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }

    <script type="text/javascript">

        $('form').validate({
            onfocusout: function (element) {
                this.element(element);
            },
            messages: {
                amount: 'Enter Name',
                age: 'Enter Age',
            },
            highlight: function (element) {
                $(element).closest('.input-group').addClass('has-error');
            },
            unhighlight: function (element) {
                $(element).closest('.input-group').removeClass('has-error');
                $(element).closest('.input-group').addClass('has-success');
            }
        })


        $(document).ready(function(){
            if(@ViewBag.userId != null){
                var userId = @ViewBag.userId;

        }


    </script>
}

当我尝试提交空表单(不输入任何数据)时,我希望会弹出警告消息。但是,我在该字段旁边没有看到任何消息。但是,我可以看到表单没有被提交,光标提示我输入一些文本。我哪里错了?

【问题讨论】:

  • @ViewBag.userId 输出的是什么?
  • @LucaKiebel 它正在从Controller 输出userId。我得到了12
  • 所以。它总是一个数字或空值?
  • 是的。我在这里找一个号码。唯一的另一种情况是ViewBag 为空。
  • 你能把实际执行的文档就绪函数的代码贴出来,意思是在asp完成预处理之后?

标签: jquery asp.net-mvc validation


【解决方案1】:

问题是剃刀代码没有与您的 JavaScript 代码同时被评估。您必须先使用 razor 检查 null 值,然后使用 JS 代码

 @if(ViewBag.userId != null)
  {
       //your code    
  }

【讨论】:

    猜你喜欢
    • 2012-05-17
    • 2014-07-08
    • 2011-03-09
    • 2014-01-06
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多