如何在Magento Javascript中验证表单
How to validate form in Magento Javascript as you type
Magento有很棒的Javascript验证库,可以初始化var myForm= new VarienForm('[your form id]', true);
。然而,这个验证功能是在点击提交按钮时触发的。
无法在键入时验证特定字段。例如,如果我输入邮政编码2位数字并进入第二个字段,它应该立即验证邮政编码并显示错误。因为邮政编码至少需要5位数字。
谢谢
是的,Magento提供了很棒的验证库。您可以使用' validate'方法对每个字段调用验证。
例如,为了验证邮政编码,您可以观察blur事件并调用validate
方法。
$('billing:postcode').observe('change', function(e){
Validation.validate($('billing:postcode'))
})
注意Validation.validate($('billing:postcode'))
,这将调用邮政编码字段的验证
首先,创建表单。
<form action="<?php echo $this->getUrl('/some/route/thing');?>" id="theForm">
<input type="text" name="foo" id="foo" />
</form>
接下来,运行这段javascript代码,将普通的旧表单转换为VarienForm
<script type="text/javascript">
//<![CDATA[
var theForm = new VarienForm('theForm', true);
//]]>
</script>
然后,使用validation将验证写为javascript函数。添加方法。(Validation是一个全局变量,用于存储所有表单验证规则)
<script type="text/javascript">
//<![CDATA[
var theForm = new VarienForm('theForm', true);
Validation.add('validate-must-be-baz','You failed to enter baz!',function(the_field_value){
if(the_field_value == 'baz')
{
return true;
}
return false;
});
//]]>
</script>
更多信息请点击链接
您可以编写一个自定义验证类:
Validation.add('validate-float','Error message',function(v){
return Validation.get('IsEmpty').test(v) || (!/'./.test(v));
});
参见- https://magento.stackexchange.com/a/15165/4832
这里没有添加任何新内容,但是如果您想通过剪切和粘贴的方式快速地为表单创建多个验证,只需添加到fields
数组:
var fields = ['firstname', 'lastname', 'telephone', 'street1', 'region_id', 'country_id', 'city', 'postcode'];
fields.map( function (fld) {
$('billing:' + fld).observe('change', function(e){
Validation.validate($('billing:' + fld))
});
});
不是100%关于如何实现它,但是你可以使用prototype事件监听器。我曾经尝试挂钩在Magento的表单验证一次之前,为了停止多个表单提交,代码类似于什么是下面,但我已经改变了一点,以适应您的要求:
new Event.observe('contactForm', 'keyup', function(e){
e.stop();
if(contactForm.validator && !contactForm.validator.validate()) {
//do something here because it failed validation
return;
}
});
相关文章:
- JAVASCRIPT验证表单中的日期
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 如何使用jQuery正确验证表单
- Javascript不会验证表单
- 如何使用javascript验证表单中的数据,然后调用php页面
- 包括来自另一个页面的Boostrap模态;t验证表单
- Javascript验证表单不重定向页面
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 引导复选框-x 选中时未正确更新 DOM - 如何验证表单
- Jquery 验证表单
- 验证表单中的 jQuery-UI 微调器
- 在 Jquery 中验证表单的输入字段
- 如何验证表单控制数据大小不超过2.5 mb
- 在表单进入Angular中的ng-submit之前验证表单
- Javascript表单验证:表单在错误返回时提交:
- 使用Angular.js验证表单输入的原始状态
- 正在复制验证表单
- 如何在转盘中逐步(3步)验证表单
- 使用javascript验证表单值
- 验证表单按id输入val