javascript - 为什么 JQuery valid() 方法总是返回 True?

标签 javascript jquery jquery-validate

我有一个简单的 HTML 表单:

<form id="frmNewCategory">
    <span>New Category Name:</span>
    <input type="text" id="txtNewCategoryName">
    <label>Amount:</label>
    <input type="text" id="txtNewCategoryAmount">
    <br>
    <input type="submit" value="Create" class="importantButton button" id="btnNewCategory">
    <input type="button" value="Cancel" class="button" id="btnCancelNewCategory">
</form>

还有一些使用 validation plugin 的 jQuery 驱动的 JavaScript单击 btnNewCategory 时触发:

function onNewCategoryClick(event)
{

    $("#frmNewCategory").validate(
        {
            rules:
            {
                txtNewCategoryName : { required: true },
                txtNewCategoryAmount : { required: true, number: true }
            },
            messages:
            {
                txtNewCategoryName : { required: "*" },
                txtNewCategoryAmount: { required: "*", number: "Invalid Amount." }
            }
        });


    if (!$("#frmNewCategory").valid())
        return;

    event.preventDefault();
    var cmd = cmdFactory.createUndoableNewCategoryCommand($(this));
    cmdBus.handleCommand(cmd);  
}

上面的方法应该验证 frmNewCategory。问题是,即使表单有无效值或根本没有值,.valid() 方法仍会返回 True。

有什么想法吗?我做错了什么?

最佳答案

规则采用输入“名称”而不是“id”的形式:

      <input type="text" name="txtNewCategoryName" />
      <input type="text" name="txtNewCategoryAmount" />

关于javascript - 为什么 JQuery valid() 方法总是返回 True?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3623879/

相关文章:

javascript - Jquery 和 Bootstrap 应该放在 HTML 文件的什么位置?

jquery - 所需的表单验证规则取决于

javascript - Three.js 代码中的对象始终呈现在另一个对象之上

php - jQuery Accordion 菜单扩展了页面长度

javascript - 使用javascript保存html页面

javascript - 图像悬停时的 jQuery 视频帧预览

jquery - 如何在具有 defaultValue 的可选字段上使用 jQuery Validator 自定义方法?

javascript - 重新插入div的位置

javascript - Uncaught Error : [$injector:unpr] Unknown provider: aProvider <- a

javascript - 使用 JavaScript 的文本框自动结果出现故障