【问题标题】:jQuery validation with Textbox naming on ASP.NET MVC page?在 ASP.NET MVC 页面上使用文本框命名进行 jQuery 验证?
【发布时间】:2010-02-11 21:39:28
【问题描述】:

我的视图上有两个文本框控件。 当名称是一个单词时,这里 jQuery 验证功能正在工作。 当名称中有任何点时,它不起作用。

在下面的 jQuery 函数中,如果我使用“lastname”文本框 id 进行验证,它不允许除数字之外的任何其他键。但不知何故,如果我使用“AddressDetail.ZipCode”文本框 id 只允许数字,它就不会调用。我必须只使用“AddressDetail.ZipCode”,因为它引用了子表。

这是我的代码。

<table>
    <tbody>

<tr><td class="Form_Label"><label for="LastName">Last Name</label><em>*</em></td>
        <td CssClass="Form_Value"><%= Html.TextBox("lastname", Model.LastName, new { @class = "required", size = "30" })%></td></tr>

      <tr><td class="Form_Label"><label for="Zip">Zip</label><em>*</em></td>
        <td CssClass="Form_Value"><%= Html.TextBox("AddressDetail.ZipCode", Model.AddressDetail.FirstOrDefault().ZipCode, new { @class = "required zip", minlength = "5"})%></td></tr>

<tr><td colspan="2" align="center"><input type="submit" id="btnUpdProfile" value="Update" /> </td></tr>

JQuery 函数验证:

<script type="text/javascript">


    $(document).ready(function() {
        //Disabling all other keys except digits
        $('#AddressDetail.ZipCode').live('keypress', function(e) {
            var keyPressed;
            if ((e.charCode) && (e.keyCode == 0))
                keyPressed = e.charCode
            else
                keyPressed = e.keyCode;
            if (keyPressed < 48 || keyPressed > 57) {
                return false;
            }
            return true;
        });
    });

</script> 

    </tbody>
</table>

【问题讨论】:

    标签: jquery asp.net-mvc jquery-validate


    【解决方案1】:

    .被解释为类选择器。你想要:

    $('#AddressDetail\\.ZipCode')

    解析器将双反斜杠评估为'#AddressDetail\.ZipCode'。 jQuery 看到句号前面的反斜杠并按字面意思解释它,而不是作为类选择器。

    【讨论】:

    • $('#AddressDetail\\.ZipCode') 需要两个iirc
    • 不确定。它将 HTML 生成为 AddressDetail_ZipCode。现在它工作正常。
    猜你喜欢
    • 2011-05-08
    • 2017-03-10
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多