2017年12月26日 星期二

2017年12月15日 星期五

JQuery Validate Remote

http://www.cc.ntu.edu.tw/chinese/epaper/0033/20150620_3307.html

https://jqueryvalidation.org/remote-method/

自訂驗證方式主要是用ajax打後端取得驗證結果

範例如下:
        var validator = $form.validate({
            rules: {
                //定義驗證規則,其中屬性名為表單的name屬性
                'ApplicationContentViewModel.CellPhoneNumber': {
                    required: true,
                    remote: {
                        url: '/RentalApplication/CheckCellPhoneNumber',
                        type: 'POST',
                        dateType: 'json',
                        data: {
                            mobileType: function () {
                                setFilterData();
                                return filterData.MobileType;
                            },
                            cellPhoneNumber: function () {
                                return $('#ApplicationContentViewModel_CellPhoneNumber').val();
                            }
                        }
                    }
                }
            },
            messages: {
                'ApplicationContentViewModel.CellPhoneNumber': {
                    remote: "該郵箱已存在!"
                }
            }
        });

2017年12月14日 星期四

Remote validation (使用RemoteAttribute前端驗證)

https://iamsbc.blogspot.tw/2017/08/mvc-remote-validation-example.html
https://stackoverflow.com/questions/20650955/viewmodel-property-doesnt-bind-into-controller-action-parameter

踩地雷時間:
如果需要兩個參數可以用additionalfields
不過這邊會有一個雷點,這個field只會自動bind到同一個viewmodel內的field
如果要bind其他同一畫面不同viewmodel的話,需要改前端顯示input的
data-val-remote-additionalfields="*.CellPhoneNumber,ApplyTypeViewModel.MobileType"
手動改掉他,如果改不出來甚至不要用內建的html.textboxfor直接寫html input也可以

在@Html.TextBoxFor中new {}修改html attrbute

@data_val_remote_additionalfields = "*.CellPhoneNumber,ApplyTypeViewModel.MobileType"

記得是用底線【_】,轉成HTML後會自己改回【-】


補充資料:後端手動寫入錯誤訊息
https://blog.miniasp.com/post/2016/03/14/ASPNET-MVC-Developer-Note-Part-28-Understanding-ModelState.aspx

2017年12月6日 星期三

JQuery取得combobox(dropdownlist)被選擇到的值、文字

$('#yourdropdownid').find('option:selected').text();
$('#yourdropdownid').find('option:selected').val();

2017年12月5日 星期二

匿名宣告與匿名宣告陣列

https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types