跟據document, 只要在VM上加上[Required(AllowEmptyStrings = false)], 前端在沒有填寫時提交, 會出現alert box. 現在我在另一個column上, 都加了attribute [Range(0, double.MaxValue, ErrorMessage = "Please enter valid Number")]. 聲明這是一個數字的column(更甚我想用正則表達式去定義). 但前端提交後, 並沒有在前端進行驗証, 只有在提交到controller上進行驗証並返回false. 所以我問題是, 有沒有方法令到VM跟前端做到連繫? 如要前端額外再寫一個, 應該怎樣做? 謝謝
自己回答:應該是沒有直接連結到VM的規則上, 所以直接在頁面上作
以其中一個field為例, 直接加入lay-verify="positiveNumber"
<wt:textbox field="@Model.PageHeight" placeholder="Unit is (cm)" value="" lay-verify="positiveNumber" />
然後加入
<script>
layui.use('form', function () {
var form = layui.form;
form.verify({
positiveNumber: function (value) {
var regex = /^[0-9]+(\.[0-9]+)?$/;
if (!regex.test(value))
return 'Please insert a valid positive number';
if (value <= 0)
return 'Please insert a valid positive number';
},
});
});
</script>
就可以完成