首頁 >web前端 >Layui教程 >layui抓取表單數據

layui抓取表單數據

尚
轉載
2019-11-20 16:49:2511201瀏覽

layui抓取表單數據

注意事項:

1、layui 中提交按鈕是基於「監聽」機制實現的。

2、form.on() 的呼叫需置於 layui.use 的回呼函數中。

3、結尾的 'return false' 不可或缺,以確保不會觸發頁面重新整理。注意必須是 'return false',而不能簡單寫成 'return'。

抓取表單資料可按四個步驟實現:

1、停用按鈕。防止使用者連續點擊,需注意,在 Ajax 請求結束後(complete)再次明確啟用按鈕。

2、整合表單資料。很多時候,除了要取得正式表單的數據,還需要額外追加一些數據。

3、確定路徑。有時候,同一個按鈕可以表達多種操作,例如新增或修改。

4、發起請求。發起 Ajax 請求,向伺服器傳遞參數,並在回呼函數中對返回值做處理。

5、return false。

重要程式碼列舉

1、HTML 宣告

<form class="layui-form">
    <input type="hidden" name="id" />
    <button class="layui-btn layui-btn-sto" id="btnSave" lay-filter="btnSave" lay-submit>保存</button>
</form>

如果只需要監聽效果(點擊事件),則只需上述一個button 以及lay-filter 和lay-submit。
如果需要收集表單元素的值,則還需要 form 以及其樣式 layui-form。

2、js 事件監聽

// 保存
form.on(&#39;submit(btnSave)&#39;, function (data) {
    console.info(&#39;开始保存&#39;);
 
    // * 按钮禁用
    var isDisabled = $("#btnSave").hasClass(&#39;layui-btn-disabled&#39;);
    if (isDisabled) {
        return false;
    }
 
    // * 整合表单数据
    var formData = data.field;
    $.extend(formData, { Id: $("#hiddenId").val() });
    console.info(formData);
 
    // * 确定路径
    var url = "";
    if (editMode == "add") {
        url = urlEnum.Add;
    } else if (editMode == "update") {
        url = urlEnum.Update;
    } else {
        alert(&#39;编辑模型不确定, add / update&#39;);
        return;
    }
 
    // * 发起请求
    $.ajax({
        data: formData,
        type: "POST",
        dataType: "JSON",
        url: url,
        beforeSend: function () {
            // 禁用
            $("#btnSave").addClass(&#39;layui-btn-disabled&#39;);
        },
        complete: function () {
            // 启用
            $("#btnSave").removeClass(&#39;layui-btn-disabled&#39;);
        },
        success: function (result) {
            console.info("保存数据成功,返回的数据为:↓ ");
            console.info(result);
 
            if (result.Status) {                            
                // 刷新列表
                parent.$("#mainGrid").bootstrapTable("selectPage", 1);
 
                // 确保在最后关闭窗体
                parent.layer.close(parent.layer.getFrameIndex(window.name));
            } else {
                // 提示失败
                layer.alert(result.StatusMessage, { title: &#39;提示信息&#39;, icon: 5 });
            }
        }
    }); // end ajax
 
    return false;
});

更多layui相關知識請關注layui框架

以上是layui抓取表單數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除