【发布时间】:2011-08-29 18:55:26
【问题描述】:
我正在使用 jquery 验证插件对表单进行客户端验证。
我有一个必填字段 StandardPrice,它必须是一个数字。下面的验证代码完美无缺。
我有一个名为 MinPrice 的表单中的另一个字段是可选的,但我确实想验证如果用户在其中放置了一些东西,那么它是一个数字。我想通过删除 required: true 但仍然有 number: true 它会支持这一点,但它似乎不允许我将此字段留空(即使我没有 required: true 设置)
jquery 验证插件是否支持在填充字段时验证字段,但如果字段为空则不处理。
这是我的代码:
$("#productForm").validate({
rules: {
StandardPrice: {
required: true,
number: true
},
MinPrice: {
number: true
}
}
});
以下是字段为空时的验证截图:
这是我的 html 输出(我的实际代码使用了很多 HTML.helpers() 和 Html.ValidationMessageFor()
<form action="/Product/EditProduct" id="productForm" method="post"> <fieldset>
<legend>Product</legend>
<div class="editor-label">
<label for="Product_Name">Name</label>
</div>
<div class="editor-field">
<input class="required" id="Product_Name" name="Product.Name" style="width:450px;" type="text" value="Linzer Tart" />
<span class="field-validation-valid" data-valmsg-for="Product.Name" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="Product_StandardPrice">StandardPrice</label>
</div>
<div class="editor-field">
<input data-val="true" data-val-number="The field StandardPrice must be a number." data-val-required="The StandardPrice field is required." id="Product_StandardPrice" name="Product.StandardPrice" style="width:45px;text-align:right;" type="text" value="1.50" />
<span class="field-validation-valid" data-valmsg-for="Product.StandardPrice" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="Product_MiniPrice">MiniPrice</label>
</div>
<div class="editor-field">
<input data-val="true" data-val-number="The field MiniPrice must be a number." data-val-required="The MiniPrice field is required." id="Product_MiniPrice" name="Product.MiniPrice" style="width:45px;text-align:right;" type="text" value="0.00" />
<span class="field-validation-valid" data-valmsg-for="Product.MiniPrice" data-valmsg-replace="true"></span>
</div>
<input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Product_Id" name="Product.Id" type="hidden" value="102" />
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
【问题讨论】:
标签: jquery decimal jquery-validate