如何使用jquery应用组合字段验证

时间:2011-01-19 06:23:06

标签: jquery jquery-validate

我的需求表格是动态生成的。有多个字段

<tr>    
    <td >Coding Guidelines</td>
    <td align="center">
     <select name="SELECT_TASK_1" id="SELECT_TASK_1">
       <option value="">Select</option>
       <option value="Y">Yes</option>
       <option value="N">No</option>
     </select>
   </td>
   <td align="center"><input type="text" size="10" name="COMP_DATE_1"></td>
  <td align="left">&nbsp;<textarea name="COMMENT_TASK_1" id="COMMENT_TASK_1" 
             cols="45" rows="4"></textarea><span id="COMMENT_ERROR_1" > </span>
   </td>
</tr>

在DB行上有TR生成的数量。我想在select no value和Comment字段的组合上应用jquery验证。

这意味着如果select为No,则comment是必填字段。

请使用Jquery验证插件帮助如何应用验证

2 个答案:

答案 0 :(得分:0)

也许您可以将处理程序附加到提交表单按钮:

$(#form-id).submit(function(){
var valid = true;
if($('#SELECT_TASK_1').val() == "N" && $('#COMMENT_TASK_1').val() == '')
valid = false;

return valid
});

选择所有选择:

var selects = $('#form-id').find('select');
for(var i = 0; i < selects.length; i++){
  if(selects[i].val() == 'N'){
     if(area is empty)
      valid = false;
  }
}

答案 1 :(得分:0)

这是一个解决方案(虽然不是很优化):

<table>
    <tr>
        <td>
            <select>
                <option value="0">select</option>
                <option value="1">yes</option>
                <option value="2">no</option>
            </select>
        </td>
        <td>
            <textarea cols="10" rows="3"></textarea>
            <span id="COMMENT_ERROR_1"></span>
        </td>
    </tr>
    <tr>
        <td>
            <select>
                <option value="0">select</option>
                <option value="1">yes</option>
                <option value="2">no</option>
            </select>
        </td>
        <td>
            <textarea cols="10" rows="3"></textarea>
            <span id="COMMENT_ERROR_1"></span>
        </td>
    </tr>
</table>
<input type="button" id="validate" value="validate"/>

<script type="text/javascript">
$(function(){
    $("#validate").click(function(){
        $.each($("select"),function(){
            var n=$("option:selected",this).text();
            if(n=="no")
            {
                var $txt=$("textarea",$(this).closest("tr"));
                if($txt.text()=="")
                {
                    var $sp=$txt.parent().find("span");
                    $sp.text("Enter comment");
                }
                else
                {
                    var $sp=$txt.parent().find("span");
                    $sp.text("Enter comment");
                }
            }
        });
    });
});
</script>