验证表单中的 jQuery-UI 微调框

Validate a jQuery-UI Spinner within a form

我正在使用 "jQuery Validation Plugin" 来验证表单域。 效果很好。

我在表单中添加了一个新字段。此字段使用 jQuery-UI 微调器,但我无法验证它。

这是微调器元素的第 HTML 代码:

<form id="formAddCategory">
    <input id="spinTeamNumber" name="value" style="display: inline-block; margin: 10px; width: 3em;" size="3" maxlength="3">
</form>

这是旋转器代码:

$("#spinTeamNumber").spinner({
    step : 1,
    min : 1,
    numberFormat : "n",
    alignment : 'vertical'
});

这是验证码:

$("#formAddCategory").validate({
    rules : {
        "spinTeamNumber" : {
            required : true,
        }
    },
    messages : {
        "spinTeamNumber" : {
            required : "* Required"
        }
    }
});

[...]

if ($("#formAddCategory").valid()) {
    ...
}

但是没有用。 我也尝试过定义自定义验证方法,但没有成功。

您只能在 .validate() 方法中使用输入元素的 name 而不是 id

您的 name 定义为 value...

<input id="spinTeamNumber" name="value" ....

所以你必须在 .validate() 方法中使用 value...

$("#formAddCategory").validate({
    rules : {
        value : {  // <-- the input NAME
            required : true,
        }
    },
    messages : {
        value : {  // <-- the input NAME
            required : "* Required"
        }
    }
});

要创建微调器,jQuery UI 会在原始输入元素周围动态添加一个容器,因此您可能希望使用 errorPlacement 选项将消息发送到显示在外面。

演示:http://jsfiddle.net/6u18p6ju/