Skip to content

Form(表单)

使用$.fn.iForm.defaults重写默认值对象

form提供了各种方法来操作执行表单字段,比如:ajax提交, load, clear等等。当提交表单的时候可以调用validate方法检查表单是否有效。

用法

创建一个简单的HTML表单。构建一个包含id、action和method值的表单元素。

html
<form id="ff" method="post">
    <div>
        <label for="name">Name:</label>
        <input data-toggle="topjui-validatebox" type="text" name="name" data-options="required:true">
    </div>
    <div>
        <label for="email">Email:</label>
        <input data-toggle="topjui-validatebox" type="text" name="email" data-options="validType:'email'">
    </div>
    ...
</form>

使普通表单成为ajax提交方式的表单。

javascript
$('#ff').iForm({
    url:...,
    onSubmit: function(){
        // do some check
        // return false to prevent submit;
    },
    success:function(data){
        alert(data)
    }
});
// submit the form
$('#ff').submit();

做一个提交操作。

javascript
// call 'submit' method of form plugin to submit the form
    $('#ff').iForm('submit', {
        url:...,
        onSubmit: function(){
            // do some check
            // return false to prevent submit;
        },
        success:function(data){
            alert(data)
        }
    });

提交额外的参数。

javascript
$('#ff').iForm('submit', {
    url:...,
    onSubmit: function(param){
        param.p1 = 'value1';
        param.p2 = 'value2';
    }
});

处理提交响应

提交一个ajax表单是非常简单的。用户可以在提交完成后获取响应数据。注意,响应的数据是来自服务器的原始数据。A parse action to the response data is required to get the correct data.

例如,响应数据假设为JSON,一个典型的响应数据格式如下:

json
{
    "success": true,
    "message": "Message sent successfully."
}

现在在'success'回调函数中处理JSON字符串。

javascript
$('#ff').iForm('submit', {
    success: function(data){
        var data = eval('(' + data + ')');  // change the JSON string to javascript object
        if (data.success){
            alert(data.message)
        }
    }
});

属性

属性名属性值类型描述默认值
novalidateboolean定义是否验证表单的字段,true:验证,false:不验证。FALSE
iframeboolean定义是否使用iframe模式提交表单,true:使用,false:不使用。TRUE
ajaxboolean定义是否使用ajax提交表单,true:使用,false:不使用。TRUE
dirtyboolean定义是否只提交变更字段,true:是,false:不是。FALSE
queryParamsobject当表单被提交到服务器的时候增加的额外参数列表。{}
urlstring提交表单动作的URL地址null

事件

事件名事件参数描述
onSubmitparam在提交之前触发,返回false可以终止提交。
onProgresspercent在上传进度数据有效时触发。在"iframe"属性设置为true时该事件不会被触发。
successdata在表单提交成功以后触发。
onBeforeLoadparam在请求加载数据之前触发。返回false可以停止该动作。
onLoadSuccessdata在表单数据加载完成后触发。
onLoadErrornone在表单数据加载出现错误的时候触发。
onChangetarget在表单数据发生变化的时候触发。

方法

方法名方法参数描述
submitoptions执行提交操作,该选项的参数是一个对象,它包含以下属性:url:请求的URL地址。onSubmit: 提交之前的回调函数。success: 提交成功后的回调函数。下面的例子演示了如何提交一个有效并且避免重复提交的表单。
loaddata读取记录填充到表单中。数据参数可以是一个字符串或一个对象类型,如果是字符串则作为远程URL,否则作为本地记录。见下方代码示例。
clearnone清除表单数据。
resetnone重置表单数据。
validatenone做表单字段验证,当所有字段都有效的时候返回true。该方法使用validatebox(验证框)插件。
enableValidationnone启用验证。
disableValidationnone禁用验证。
resetValidationnone重置验证设置为默认值。
resetDirtynone重置只提交变更字段的设置为默认值。

方法代码示例

load方法示例:

javascript
$('#ff').iForm('load','get_data.php'); // 读取表单的URL
javascript
$('#ff').iForm('load',{ name:'name2', email:'mymail@gmail.com', subject:'subject2', message:'message2', language:5 });

基于最新稳定版jQuery EasyUI构建的前端框架