我正在构建一个表单(userModify),其中包含数组$ userFields所需的所有属性。我希望能够在获得验证服务器端之前使用jquery validate来检查数据。我有一个在页面前面构建的字段数组。
$userFields=
array('userName'=>array('type'=>'field','required'=>NULL,'options'=>NULL),
'password' => array('type'=> 'field','required'=>NULL,'options'=>NULL),
'lastName' =>array('type'=>'text','maxSize'=>'32','required'=>'*','options'=>NULL),
'firstName'=>array('type'=>'text','maxSize'=>'32','required'=>'*','options'=>NULL),
'phoneNumber'=>array('type'=>'select','maxSize'=>NULL,'required'=>NULL,'options'=>$numbers),
'extension' =>array('type'=>'text','maxSize'=>'8','required'=>'*','options'=>NULL));
验证脚本:
$( "#userModify" ).validate({
rules: {
phoneNumber: {
required: true
}
}
});
我的问题是如何动态地将字段规则引入jquery验证结构。查看数组,所以在这个例子中,我将为lastName,firstName和extension构建规则。我不想静态添加字段规则,因为数组可以是任意数量的不同字段,而验证结构将包含大量规则。
我考虑过对另一个文件进行ajax调用以获取最初的数组,然后分解ajax调用的结果,这是个好主意吗?
我知道这段代码显然是错误的,但我在下面写这篇文章试图描述我想要做的事情。
$( "#userModify" ).validate({
rules: {
<?php
foreach ($userFields as $k => $v)
{
if ($v['required'] == "*")
{
//add jquery rule
}
}
?>
});
我还有其他方法吗?
答案 0 :(得分:0)
您可以尝试这样的事情,只需将数据传输到javascript并让它创建规则:
var form = <?php echo json_encode($userFields); ?>;
var rules = {}, i;
for (name in form) {
if (form[name].required === '*') {
rules[name].required = true;
}
}
$( "#userModify" ).validate({ rules: rules });