将 JavaScript 消息传递给 CSHARP

pass javascript message to csharp

本文关键字:CSHARP 消息传递 JavaScript      更新时间:2023-09-26

我有一个JavaScript代码,它工作得很好:

<script type="text/javascript">
    var maxWords = 100;
    function limitLengthInWords(field)
    {
        var value = field.value,
            wordCount = value.split(/'S+/).length - 1,
            re = new RegExp("^''s*''S+(?:''s+''S+){0," + (maxWords - 1) + "}");
        if (wordCount >= maxWords)
        {
            field.value = value.match(re);
            alert("Max reached");
        }
        document.getElementById(field).innerHTML = maxWords - wordCount;
    }
</script>

如何替换警报("最大达到"),以便它显示我正在检查的文本区域的验证消息:

 @Html.ValidationMessageFor(model => model.description)

我可以这样做吗:

<script type="text/javascript">
    var maxWords = 100;
    function limitLengthInWords(field)
    {
        var value = field.value,
            wordCount = value.split(/'S+/).length - 1,
            re = new RegExp("^''s*''S+(?:''s+''S+){0," + (maxWords - 1) + "}");
        if (wordCount >= maxWords)
        {
            field.value = value.match(re);
             @Html.ValidationMessageFor(field,"Max reached");
        }
        document.getElementById(field).innerHTML = maxWords - wordCount;
    }
</script>

最简单的方法是显示一些隐藏的文本。

<span style="display:none;" class="max-reached">Max Reached</span>
$(".max-reached").show()

或者,尝试使用执行此操作并包含倒计时的库。如贵族伯爵

确保正确注释模型,我使用密码属性作为示例

[StringLength(30, ErrorMessage = "Error Message")]
public string Password
{
    get;
    set;
}

更改此@Html.ValidationMessageFor(字段,"Max 已达到");我假设 $(字段) 是 id,例如 $('#Password'),您所要做的就是访问 mvc 存储的数据信息 $(field).data('val-length')