form表单提交案例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012571917/article/details/77906896

form表单提交案例

这是.net mvc 的一个form提交小例子

@model Disease
这是一个新建项目的模式对话框。使用的是bootstrap的model。
<div id="newProject" class="modal fade modal-scroll in" role="dialog" aria-labelledby="newProjectLabel" aria-hidden="true">
    <div class=" modal-dialog">
        <div class="modal-content">
            <form id="formNewProject" class="form-horizontal" role="form">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                    <h4 class="modal-title">新建项目</h4>
                </div>
                <div class="modal-body">
                    <div class="form-group">
                        <label class="col-md-3 control-label">所属病种库:</label>
                        <div class="col-md-9">
                            <input id="hfDiseaseId" name="DiseaseId" type="hidden" class="form-control select2 librarySelector" value="" />
                        </div>
                    </div>
                    @*<div class="form-group">
                            <label class="col-md-3 control-label">项目编号:</label>
                            <div class="col-md-9">
                                <input id="txtProjectNo" name="ProjectNo" type="text" class="form-control" placeholder="请输入项目编号" value="" />
                                <span class="help-block"></span>
                            </div>
                        </div>*@
                    <div class="form-group">
                        <label class="col-md-3 control-label">项目名称:</label>
                        <div class="col-md-9">
                            <input id="txtProjectName" name="ProjectName" type="text" class="form-control" placeholder="请输入项目名称" required>
                            <span class="help-block"></span>
                        </div>
                    </div>


                    <div class="form-group">
                        <label class="col-md-3 control-label">负责人:</label>
                        <div class="col-md-9">
                            <input id="txtProjectOwner" name="ProjectOwner" type="hidden" class="form-control select2 userSelector" />
                            <span class="help-block"></span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">经费来源:</label>
                        <div class="col-md-9">
                            <input id="txtDataValue" name="DataValue" type="hidden" class="form-control select2 DataValueSelector" />
                            <span class="help-block"></span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">联系人:</label>
                        <div class="col-md-9">
                            <input id="txtProjectContact" name="ProjectContact" type="hidden" class="form-control select2 userSelector" />
                            <span class="help-block"></span>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">描&nbsp;&nbsp;述:</label>
                        <div class="col-md-9">
                            <textarea id="txtProjectDescription" name="ProjectDescription" class="form-control" placeholder="请输入项目描述" rows="4"></textarea>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">项目类型:</label>
                        <div class="col-md-5">
                            <select id="ddlProjectType" class="form-control">
                                <option value="1">样本项目</option>
                                <option value="2">基础研究</option>
                                <option value="3">临床试验项目</option>
                                <option value="4">随访项目</option>
                            </select>
                        </div>
                        <div class="col-md-4">
                            <input id="cbMultiCenter" type="checkbox" class="form-control" />
                            <label class="control-label">多中心项目</label>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">是否GCP项目:</label>
                        <div class="col-md-9">
                            <input id="cbGcpProject" type="checkbox" class="form-control" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">是否启用日历:</label>
                        <div class="col-md-9">
                            <input id="cbIsShowCalendar" type="checkbox" class="form-control" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-3 control-label">日期格式:</label>
                        <div class="col-md-5">
                            <select id="ddlProjectDateFormat" name="ddlProjectDateFormat" class="form-control">
                                <option value="yyyy年MM月dd日">yyyy年MM月dd日</option>
                                <option value="yyyy/MM/dd">yyyy/MM/dd</option>
                                <option value="yyyy-MM-dd">yyyy-MM-dd</option>
                                <option value="yyyyMMdd">yyyyMMdd</option>
                            </select>
                        </div>
                    </div>

                </div>
                <div class="modal-footer">
                    <div class="col-sm-12">
                        <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                        <button type="submit" class="btn green">确定</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<script>

    $(function () {
        //验证
        var form3 = $('#formNewProject');
        var error3 = $('.alert-danger', form3);
        var success3 = $('.alert-success', form3);

        form3.validate({
            errorElement: 'span',
            errorClass: 'help-block',
            focusInvalid: false,
            ignore: "",
            rules: {
                //DiseaseId: {
                //    required: true
                //},
                //ProjectNo: {
                //    required: true
                //},

                ProjectName: {
                    required: true,
                },
                DataValue: {
                    required: true
                },
                ProjectOwner: {
                    required: true,
                },
                ProjectContact: {
                    required: true,
                },
                //ProjectDescription: {
                //    required: true
                //},
                ddlProjectDateFormat: {
                    required: true
                }
            },

            messages: {
                //DiseaseId: {
                //    required: "请选择病种库"
                //},
                //ProjectNo: {
                //    required: "请设置项目编号"
                //},
                ProjectName: {
                    required: "请设置项目名称"
                },
                DataValue: {
                    required: "请设置经费来源"
                },
                ProjectOwner: {
                    required: "请设置项目负责人"
                },
                ProjectContact: {
                    required: "请设置项目联系人"
                },
                //ProjectDescription: {
                //    required: "请设置项目描述"
                //},
                ddlProjectDateFormat: {
                    required: "请设置项目表单日期显示格式"
                }
            },

            errorPlacement: function (error, element) {
                if (element.parent(".input-group").size() > 0) {
                    error.insertAfter(element.parent(".input-group"));
                } else if (element.attr("data-error-container")) {
                    error.appendTo(element.attr("data-error-container"));
                } else if (element.parents('.radio-list').size() > 0) {
                    error.appendTo(element.parents('.radio-list').attr("data-error-container"));
                } else if (element.parents('.radio-inline').size() > 0) {
                    error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
                } else if (element.parents('.checkbox-list').size() > 0) {
                    error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
                } else if (element.parents('.checkbox-inline').size() > 0) {
                    error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
                } else {
                    error.insertAfter(element);
                }
            },


            invalidHandler: function (event, validator) {
                success3.hide();
                error3.show();
                App.scrollTo(error3, -200);
            },

            highlight: function (element) {
                $(element)
                     .closest('.form-group').addClass('has-error');
            },

            unhighlight: function (element) {
                $(element)
                    .closest('.form-group').removeClass('has-error');
            },

            success: function (label) {
                label.closest('.form-group').removeClass('has-error');
            },

            submitHandler: function (form) {
                success3.show();
                error3.hide();

                var project = {
                    diseaseId: $("#hfDiseaseId").val(),
                    dateFormat: $("#ddlProjectDateFormat").val(),
                    name: $("#txtProjectName").val(),
                    dataIds: $('#txtDataValue').val(),
                    owner: $('#txtProjectOwner').val(),
                    contact: $("#txtProjectContact").val(),
                    description: $("#txtProjectDescription").val(),
                    type: $("#ddlProjectType").val(),
                    isMultiCenter: $("#cbMultiCenter")[0].checked,
                    isGCP: $("#cbGcpProject")[0].checked,
                    IsShowCalendar: $("#cbIsShowCalendar")[0].checked

                };

                $.ajax({
                    url: "@Url.Action("Create", "Project")",
                    type: "post",
                    dataType: "json",
                    data: project,
                    cache: false,
                    beforeSend: function (XMLHttpRequest) {
                        $('body').addClass('loading');
                    },
                    success: function (data, textStatus, jqXHR) {
                        if (data.Error === 0) {
                            location.href = "@Url.Action("Details", "Project")" + "/" + data.Data;
                        }
                        else {
                            alert(data.Message);
                        }
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        //异常处理
                        alert(XMLHttpRequest.responseText);
                    },
                    complete: function (XMLHttpRequest, textStatus) {
                        $('body').removeClass('loading');
                        //关闭加载动画
                    }
                });

                return false;
            }

        });




        $('.select2me', form3).change(function () {
            form3.validate().element($(this));
        });

        $("#hfDiseaseId").change(function () {
            form3.validate().element($(this));
        }).select2({
            placeholder: "请选择病种库...",
            //allowClear: true,
            minimumInputLength: 0,
            ajax: {
                url: "@Url.Action("GetLibraryData", "Library")",
                dataType: 'json',
                quietMillis: 100,
                data: function (term, page) {
                    return { limit: 100000, key: term };
                },
                results: function (data, page) {
                    return { results: data }
                }
            },
            formatResult: function (d) {
                return d.name;
            },
            formatSelection: function (d) {
                return d.name;
            },
            initSelection: function (element, callback) {
            }
        });




        var index;

        $('#txtDataValue').change(function () {
            form3.validate().element($(this));
        }).select2({
            placeholder: "请选择经费来源...",
            minimumInputLength: 0,
            multiple: true,
            id: function (index) {

                return index.Id;
                console.log(index)
            },
            ajax: {
            url: "@Url.Action("_DataValueSelector", "Project")",
            dataType: 'json',
            quietMillis: 100,
            data: function (term, page) {
                return {
                    q: term, // search term  
                };
            },
            results: function (data, page) {
                return { results: data }

            },
            cache: true
        },
            formatResult: function (d) {
                return d.Data_Value + "[" + d.Id + "]";
            },
        formatSelection: function (d) {
            return d.Data_Value + "[" + d.Id + "]";
        },
        initSelection: function (element, callback) {
        }
    });

        $('#txtProjectOwner').change(function () {
            form3.validate().element($(this));
        }).select2({
            placeholder: "请选择负责人...",
            minimumInputLength: 0,
            ajax: {
                url: "@Url.Action("_UserSelector", "Shared")",
                dataType: 'json',
                quietMillis: 100,
                data: function (term, page) {
                    return { limit: 10, key: term };
                },
                results: function (data, page) {
                    console.log(data);
                    return { results: data }

                }
            },
            formatResult: function (d) {
                return d.name + "[" + d.id + "]";
            },
            formatSelection: function (d) {
                return d.name + "[" + d.id + "]";
            },
            initSelection: function (element, callback) {
            }
        });

        $('#txtProjectContact').change(function () {
            form3.validate().element($(this));
        }).select2({
            placeholder: "请选择联系人...",
            minimumInputLength: 0,
            ajax: {
                url: "@Url.Action("_UserSelector", "Shared")",
                dataType: 'json',
                quietMillis: 100,
                data: function (term, page) {
                    return { limit: 10, key: term };
                },
                results: function (data, page) {
                    return { results: data }
                }
            },
            formatResult: function (d) {
                return d.name + "[" + d.id + "]";
            },
            formatSelection: function (d) {
                return d.name + "[" + d.id + "]";
            },
            initSelection: function (element, callback) {
            }
        });

        $('.date-picker .form-control').change(function () {
            form3.validate().element($(this));
        })
    });


</script>

效果图如下。提示:一个html页面只可以有一个form。因此只可以有一个form提交,form提交一般用于页面标签元素比较多的时候,这里只有两个属性,但是用来熟悉form最好了。这里写图片描述

猜你喜欢

转载自blog.csdn.net/u012571917/article/details/77906896