如何取消屏蔽jquery.maskedinput数据库插入的电话号码

时间:2017-07-25 20:02:41

标签: javascript jquery html asp.net-mvc

我在MVC网络应用中使用jquery.maskedinput.min.js,我很难删除电话号码掩码。

JS: -

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript" src="/Scripts/jquery-1.8.3.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/Scripts/jquery.maskedinput.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#phone").mask("(999) 999-9999");
    });
    $(function unMaskFunc() { //This doesn't work...
        $("#phone").unmask(); 
    });
</script>
}

接下来,我的表单中有我的电话号码字段:

    <div class="form-group">
        @Html.LabelFor(model => model.PhoneNo, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.PhoneNo, new { htmlAttributes = new { @class = "form-control", @id = "phone" } })
            @Html.ValidationMessageFor(model => model.PhoneNo, "", new { @class = "text-danger" })
        </div>
    </div>

最后,提交按钮应该在点击时调用unmask功能但不起作用:

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" onclick="unMaskFunc()" />
        </div>
    </div>

它在带有掩码的sql db中插入,我只想要数字。无论我在哪里放置js,它都会在文本框中渲染蒙版并插入蒙版,否则蒙版将无法通过验证呈现。我真的想使用min.js文件中的unmask函数!

任何帮助都会很棒......我还是新手,所以我觉得我错过了一些明显的东西。谢谢!

1 个答案:

答案 0 :(得分:1)

如果要在没有掩码的情况下将掩码输出转换为DB中的varchar,可以在服务器端执行此操作。

if (model.PhoneNo != null)
   model.PhoneNo = new string(model.PhoneNo.Where(char.IsDigit).ToArray());

这将为您提供一个只包含可以插入数据库的数字的字符串。