jquery validate:自定义验证规则

时间:2010-09-09 15:42:06

标签: jquery jquery-plugins jquery-validate

我希望这个表单仅在用户选择“Sí”作为select问题的答案时才需要字段'Nombre'。此外,如果用户选择“Sí”,则应提供电子邮件或电话(在teléfono中)。

我正在使用validate插件,但没有找到类似规则编码的文档。我该如何编码?

查看the documentation,我认为我需要使用required(dependency-expression)required(dependency-callback)方法进行编码,但我不知道哪个或如何,因为在点击方法时,他们的文档似乎丢失了= /

<html> 
<head>

<style type="text/css">

label { width: 10em; float: left; }
label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }
p { clear: both; }

em { font-weight: bold; padding-right: 1em; vertical-align: top; }
</style>



  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>

  <link rel="stylesheet" type="text/css" media="screen" href="mistylesheet.css" />
<script>
  $(document).ready(function(){
    $("#commentForm2").validate();
  });


  </script>

</head>
<body>
<form id="commentForm2">

     <center><table class="layouttable">

        <tr class='row1'><td> <b>&#191;Recomendar&iacute;a nuestros servicios a otra empresa o persona?  </b></td></tr>
        <tr class='row2'><td> 



        <select id = "recomiendaONo" name="recomiendaONo" class="required">
           <option value="">Seleccione su respuesta</option>
             <option value="Si">S&iacute;</option>
         <option value="No">No</option>

        </select>



        </td></tr>


  </table></center>    






<div class='margenrecomendaciones'>
<table>

<tbody>


<tr>



<td><div align="left">Nombre:</div></td> 

<td><div align="left"><input class="texto" id="nombreRecomendado" name="nombreRecomendado" type="text" size="30"/></div></td>

</tr>      




<td><div align="left">Email:</div></td>

<td><div align="left"> <input  class="texto" id="emailRecomendado" name="emailRecomendado" type="text" size="30"/></div></td>




</tr>

<tr>



<td><div align="left">Tel&eacute;fono:</div></td>

<td><div align="left"> <input class=" texto" name="telefonoRecomendado" id="telefonoRecomendado" type="text" size="30"/></div></td>




</tr>


</tbody>

</table>
</div>


    <center><input type="submit"></center>


</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

您可以查看他们的演示页面,看看如何使其工作的硬编码示例。如果未选择选项,则仅使用javascript禁用字段,并且在选择选择时,将删除禁用的属性。

从演示网站复制粘贴:

//code to hide topic selection, disable for demo
var newsletter = $("#newsletter");
// newsletter topics are optional, hide at first
var inital = newsletter.is(":checked");
var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
var topicInputs = topics.find("input").attr("disabled", !inital);
// show when newsletter is checked
newsletter.click(function() {
    topics[this.checked ? "removeClass" : "addClass"]("gray");
    topicInputs.attr("disabled", !this.checked);
});

http://jquery.bassistance.de/validate/demo/

答案 1 :(得分:0)

您需要创建自己的自定义规则,并将此类添加到这两个字段中。

在你的js文件中:

d2.add(seconds)

在你的html代码中,你必须将新类添加到字段中。

SELECT wp_posts . * 
    FROM wp_posts
    INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) 
    INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) 
    WHERE 1 = 1
    AND 
    (
        (
            wp_postmeta.meta_key =  'pid'
            AND CAST( wp_postmeta.meta_value AS CHAR ) =  'Marc43'
        )
        AND 
        (
            mt1.meta_key =  'fid'
            AND CAST( mt1.meta_value AS CHAR ) =  '1'
        )
    )
    AND wp_posts.post_type =  'seo_profile'
    AND 
    (
        wp_posts.post_status =  'publish'
    )
    GROUP BY wp_posts.ID
    ORDER BY wp_posts.post_date DESC

另一个提示,永远不要使用表格来设置页面样式,使用div,浮点数和百分比。