【问题标题】:building dynamic rules for jquery validate from php array从php数组为jquery构建动态规则验证
【发布时间】:2014-02-21 18:16:07
【问题描述】:

我正在构建一个表单 (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
          }
        }
        ?>
       });

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

【问题讨论】:

    标签: javascript php jquery ajax validation


    【解决方案1】:

    你可以尝试这样的事情,你只需将数据传输到 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 });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      相关资源
      最近更新 更多