也许你也遇到过这种情况:先用markInvalid()函数把某个输入域标示为inValid状态,之后你调用这个输入域的isValid()函数,你期待它返回false,实际上确实true。
这是为什么呢?
官方的文档中对这个函数的描述是这样的:
引用
Returns whether or not the field value is currently valid by validating the processed value of the field. Note: disabled fields are ignored.
这个函数会调用已经定义的校验规则来验证输入框中的值,如果通过则返回true。而markInvalid()函数只是给输入框加上了invalid标志,并不影响校验结果,于是这种奇怪的现象就出现了。
当然,我们可以通过预设校验规则来做所有的验证,而不用markInvalid这个函数,这样可以避免发生这种情况。但是,如果你也像我一样,喜欢用markInvalid函数标示某个控件为invalid,并且期望之后调用isValid时返回false,那么,下面的这段代码就派上用场了。
Ext.override(Ext.form.Field, {
isValid : function(preventMark){
if(this.disabled){
return true;
}
if(this.getEl().hasClass(this.invalidClass)){
return false;
}
var restore = this.preventMark;
this.preventMark = preventMark === true;
var v = this.validateValue(this.processValue(this.getRawValue()));
this.preventMark = restore;
return v;
}
})
分享到:
相关推荐
if (form.getForm().isValid()) { form.getForm().submit({ url: 'login.php', method: 'POST', success: function(form, action) { // 登录成功处理 }, failure: function(form, action) { // 登录失败...
当调用`form.isValid()`方法时,表单会检查所有字段是否满足验证条件。如果所有字段都有效,返回`true`;否则,返回`false`。 6. **远程验证**:对于需要服务器端验证的复杂场景,EXT表单支持异步验证。通过配置`...
3. **更新验证状态**:如果在表单已经初始化并显示的情况下添加字段,可能需要手动触发FormPanel的验证,可以使用`formPanel.getForm().isValid()`来检查整个表单是否有效。 4. **错误处理**:当验证失败时,EXT JS...
- `simple.form.isValid()`: 验证表单的有效性。 - `Ext.MessageBox.show()`: 显示加载提示框。 - `setTimeout` 和 `Ext.MessageBox.updateProgress()`: 更新进度提示。 - `doAction('submit')`: 提交表单数据到...
- 验证数据完整性,避免无效数据提交,可以使用`form.isValid()`检查表单是否有效。 7. **实际应用** 这样的表单提交示例在实际项目中非常常见,比如用户注册、登录、信息编辑等场景。通过合理的架构设计,可以...
form.isValid()) { event.preventDefault(); // 阻止表单提交,因为有无效字段 } else { // 这里可以添加服务器端验证逻辑,例如使用Ajax发送登录请求 var values = form.getValues(); Ext.Ajax.request({ url...
if (form.isValid()) { // 验证表单是否有效 // 发送请求到服务器进行验证 Ext.Ajax.request({ url: 'check.jsp', method: 'POST', params: values, success: function(response) { // 处理服务器返回的结果...
if (form.isValid()) { form.submit({ url: 'your/upload/url', method: 'POST', success: function(form, action) { // 处理成功响应 }, failure: function(form, action) { // 处理失败响应 } }); } ```...
if (form.isValid()) { form.submit({ url: 'validate_captcha.php', // 提交到验证验证码的服务器端接口 success: function(form, action) { if (action.result.success) { // 验证成功,执行相应操作 } ...
使用`form.loadRecord`和`form.isValid`方法进行数据加载和验证。如果所有字段都有效,可以使用`form.submit`来发送登录请求到服务器。 6. **服务器通信**:登录信息通常会通过Ajax请求发送到服务器,这可以通过...
Ext.form.Field.prototype.msgTarget = "qtip"; ``` 这里,“qtip”表示使用气泡提示的方式展示错误信息。此外还可以选择其他几种方式,例如“title”、“under”或“side”,甚至可以指定一个元素ID来作为提示目标...
if (form.isValid()) { form.submit({ url: 'upload.php', // 服务器端处理文件上传的URL success: function(form, action) { alert('文件上传成功'); }, failure: function(form, action) { alert('文件...
if (form1.getForm().isValid()) { form1.getForm().submit({ waitMsg: '正在上传...', url: "Upload.action", method: "POST", success: function(form, action) { Ext.Msg.alert('成功', action.result....
- **示例**: `formPanel.getForm().isValid()`。 #### 十五、更多表单组件 **15.1 表单组件** - **类型**: 包括文本框、复选框、单选按钮等多种类型。 - **示例**: `new Ext.form.TextField({ fieldLabel: 'Name'...
在ExtJS中,我们可以通过监听`validitychange`事件来实现实时验证,并使用`form.isValid()`方法来检查表单整体是否有效。如果表单中的某个字段无效,该字段的`invalid`样式会自动应用,显示错误提示。 此外,`Ext....
- `isValid(Boolean preventMark)`: 验证字段有效性。 - `markInvalid([String msg])`: 设置无效标记。 - `validate()`: 手动验证字段。 - `reset()`: 重置字段。 #### 五、`Ext.form.Label` 类 `Ext.form....
使用 `form.isValid()` 来检查表单中的所有字段是否都有效。如果所有字段都通过验证,表单才可提交。`allowBlank` 和 `blankText` 属性确保了帐户和密码字段不为空。 4. **按钮(Button)**: - `text`:定义按钮...
EXTJS提供了丰富的Form API,如`load()`, `submit()`, `reset()`, `isValid()`等,便于开发者对表单进行操作。例如,`submit()`方法用于提交表单,可以配置各种参数,如`method`(提交方式),`params`(附加参数),`...
- **isValid()**: 执行客户端验证并返回验证结果。 - **load(Object options)**: 执行表单数据加载操作。 - **loadRecord(Record record)**: 从数据记录中加载数据到表单。 - **markInvalid(Array/Object errors)**:...