# ajax屬性API
## ajax數據屬性api
數據屬性API可以讓你在不使用任何Javascript代碼前提下發起一個AJAX請求,很多時候數據屬性API將會被Javascript API更簡潔,寫更少的代碼得到相同的結果。以下是支持的數據屬性:
| 屬性 | 描述 |
| --- | --- |
| data-request | 指定AJAX處理程序名稱 |
| data-request-confirm | 指定一個確認信息,請求被發送前會顯示此確認消息,如果用戶點擊取消按鈕,請求將不會被發送。 |
| data-request-redirect | 當AJAX請求被成功執行后,瀏覽器會被重定向到此處指定的URL |
| data-request-update | 指定一個被更新的塊和頁面元素(CSS選擇器)列表,格式如下:`partial: selector, partial: selector`,有些情況下需要使用引號,比如,`'my-partial': '#myelement'`。如果選擇器字符串前面追加了`@`符號,從服務器接收到的內容會被追加到所述元素上,而不是替換現有內容。如果選擇器字符前面追加了`^`符號,內容將會被追加到元素的開始處。 |
| data-request-data | 指定追加發送給服務器的POST數據,格式如下:`var: value, var: value`。如果需要`var: 'some string'`可以使用`&`符號。屬性可以在觸發元素上使用,例如在按鈕上同樣擁有`data-request`屬性,on the closest element of the triggering element and on the parent form element. The framework merges values of the`data-request-data`attributes. If the attribute on different elements defines parameters with the same name, the framework uses the following priority: the triggering element`data-request-data`, the closer parent elements`data-request-data`, the form input data. |
| data-request-before-update | 指定在頁面內容更新之前被執行的Javascript代碼,在JS代碼中你可以使用以下變量:`$el`(觸發請求的頁面元素),`context`對象,從服務器上接收到的`data`對象,`textStatus`字符串,以及`jqXHR`對象。 |
| data-request-success | 指定在請求成功完成后執行的JS代碼,在JS代碼中可以使用以下變量:`$el`(觸發請求的頁面元素),`context`對象,從服務器上接收到的`data`對象,`textStatus`字符串,以及`jqXHR`對象。 |
| data-request-error | 指定在請求遇到錯誤時執行的JS代碼,代碼中可以使用以下變量:`$el`(觸發請求的頁面元素),`context`對象,`textStatus`字符串,以及`jqXHR`對象。 |
| data-request-loading | 當請求正在執行時,指定一個將被顯示的頁面元素的CSS選擇器,你可以使用這個選項來顯示一個AJAX進度器,可以使用jQuery的`show()`和`hide()`方法來控制元素的可見性。 |
| data-track-input | 可以應用到文本或密碼字段,它們同樣可以擁有`data-request`屬性,定義之后,當用戶在自動中輸入字符時AJAX請求會自動發送到服務器,這個可選屬性可以定義時間間隔(interval,毫秒),框架會在發起請求前進行等待。 |
當為一個元素定義了`data-request`屬性,用戶影響元素事件后會觸發AJAX請求。AJAX請求會根據元素類型,在對應事件觸發時發送請求:
| 元件 | 事件 |
| --- | --- |
| Forms | 當表單被提交后 |
| Links, buttons | 當元素被點擊后 |
| 文本和密碼字段 | 當`data-track-input`屬性被指定,且元素值被改變時 |
| 下拉列表,單選框,復選框 | 當元素被選擇時 |
##### 數據屬性API例子
當表單被提交后,會觸發`onCalculate`處理程序,將會更新`calcresult`塊中ID為`result`的元素。
```
<form data-request="onCalculate" data-request-update="calcresult: '#result'">
```
當點擊了刪除按鈕,會在請求發送前顯示一個確認信息:
```
<form ... >
...
<button data-request="onDelete" data-request-confirm="Are you sure?">Delete</button>
```
請求被成功執行后會重定向到另一個頁面去:
```
<form data-request="onLogin" data-request-redirect="/admin">
```
成功執行請求后會顯示一個彈框
```
<form data-request="onLogin" data-request-success="alert('Yay!')">
```
發送一個POST參數,參數名為`mode`,值為`update`
```
<form data-request="onUpdate" data-request-data="mode: 'update'">
```
為多個請求指定一個值為`7`,名稱為`id`的POST參數
```
<div data-request-data="id: 7">
<button data-request="onDelete">Delete</button>
<button data-request="onSave">Update</button>
</div>
```
包括帶有請求的[文件上傳](https://octobercms.com/docs/services/request-input#files):
```
<form data-request="onSubmit" data-request-files>
<input type="file" name="photo" accept="image/*" />
<button type="submit">Submit</button>
</form>
```
- 基本說明
- 基本操作
- October cms 安裝
- 后臺控制器路徑
- 圖標
- 獲取安裝網上的插件/主題
- 插件構造器使用
- 定時任務
- October后臺控制器
- vscode編輯器
- ajax操作
- 使用
- ajax更新組件
- ajax屬性API
- JavaScript API
- ajax綜合使用
- 主題
- 多語言主題
- 安裝市場主題
- 主題程序處理
- 主題
- 頁面
- 部件
- 布局
- 內容
- 組件
- 媒體
- 主題表單操作
- 表單使用
- 表單后端程序處理
- 插件
- 自定義插件
- 插件說明
- 插件導航條
- 插件數據庫設置
- 插件的設置管理
- 插件的配置文件config
- 組件
- app服務
- app容器
- 擴展行為
- 緩存
- Collection類
- Lazy Collections
- Collection方法
- 助手函數
- 數組助手函數
- 路徑助手函數
- 玄樂助手函數
- 其他助手函數
- 錯誤與記錄
- 事件處理
- HTML頁面
- 文件與目錄操作
- 散列和加密
- 郵件
- 郵件內容
- 郵件發送
- 分頁
- 模板解析器
- 動態解析器語法
- 隊列消息
- 請求與輸入
- 響應
- 視圖
- 路由器
- 配置
- 驗證操作
- 處理錯誤消息
- 錯誤消息與視圖
- 可用的驗證規則
- 有條件的驗證規則
- 驗證數組
- 錯誤消息
- 自定義驗證規則
- 模型操作
- 定義模型與其屬性
- 檢索模型
- 插入與更新
- 刪除模型
- 查詢范圍
- 事件操作
- 關聯操作
- 定義關系
- 關系類型
- 多肽關系
- 關系查詢
- 渴望加載
- 插入模型
- 數據庫操作
- 基本用法
- 數據表結構
- 查詢連貫操作
- 結果檢索
- select子句
- 插入更新
- where子句
- 排序,分組,限制和偏移
- 文件附件
- Collection操作
- 屬性操作
- 系列化json
- 數據庫屬性
- 數據庫行為
- 控制器
- 后臺控制器定義
- 后臺頁面
- 后臺組件
- 后臺表單
- 表單組件
- 表單視圖
- 表單行為
- 后臺列表
- 列表行為
- 列表過濾器
- 可用列類型
- 關系行為
- 關系行為類型
- 擴展關系行為
- 列表排序操作
- 導入導出操作
- 用于與權限
- corlate模板修改
- 修改頂部導航
- laravel問題
- 控制器不存在
- 控制器
- 路由組
- laravel筆記
- laravel 安裝
- 偽靜態配置
- 依賴注入 & 控制器
- 中間件
- 路由文件
- 視圖