Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从php数组构建jquery验证的动态规则_Javascript_Php_Jquery_Ajax_Validation - Fatal编程技术网

Javascript 从php数组构建jquery验证的动态规则

Javascript 从php数组构建jquery验证的动态规则,javascript,php,jquery,ajax,validation,Javascript,Php,Jquery,Ajax,Validation,我正在构建一个表单(userModify),其中包含数组$userFields中所需的所有属性。我希望能够在服务器端验证数据之前,使用jqueryvalidate检查数据。我有一个在页面前面构建的字段数组 $userFields= array('userName'=>array('type'=>'field','required'=>NULL,'options'=>NULL), 'password' => array('type'=> 'fi

我正在构建一个表单(userModify),其中包含数组$userFields中所需的所有属性。我希望能够在服务器端验证数据之前,使用jqueryvalidate检查数据。我有一个在页面前面构建的字段数组

 $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构建规则。我不想静态地添加字段规则,因为数组可以是任意数量的不同字段,而validate结构将包含大量的规则

我考虑过对另一个文件进行ajax调用以获取最初的数组,然后分解ajax调用的结果,这是一个好主意吗

我知道这段代码显然是错误的,但我在下面写这段代码是为了描述我正在尝试做的事情

  $( "#userModify" ).validate({
     rules: {
       <?php
       foreach ($userFields as $k => $v)
       {
          if ($v['required'] == "*")
          {
             //add jquery rule
          }
        }
        ?>
       });
$(“#用户修改”)。验证({
规则:{
});

我还应该尝试其他方法吗?

您可以尝试类似的方法,只需将数据传输到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 });
var form=;
var规则={},i;
用于(表格中的名称){
如果(格式[名称]。必需==='*')){
规则[名称]。必需=true;
}
}
$(“#userModify”).validate({rules:rules});