如果用户选择是,则进行条件验证

时间:2013-02-05 16:46:35

标签: jquery jquery-validate conditional

我有一个使用jquery.validate.js

的jQuery验证脚本

我需要的是当用户选择是时 - 需要其他信息(必填字段),如果用户选择否 - 罚款,继续

尝试了很长时间才使这项工作没有成功 - 添加了

非常感谢您的任何帮助!

这是我的PHP代码:

// If form type is radio, display as a radio button with yes/no answers
            if ($form_type == 'radio')
            {
            echo "<input type=\"radio\" name=\"screen_184\"  value=\"Yes\" checked /> <label>Yes</label> <input type=\"radio\" name=\"screen_184\"  value=\"No\" /> <label>No</label><br /><br />"; 

                // If from type is radio and additional information is required, display a textarea 
                if ($extra_info == 'Yes')
                {
                                   if ($row['required'] == 'Yes') {$class = 'required';} else {$class = 'input_field';}
                echo "<textarea class=\"$class\" maxlegth=\"500\" name=\"screentext_184\" /></textarea></li><br /><br />\n";
            }

1 个答案:

答案 0 :(得分:2)

当你问一个关于jQuery的问题时,你需要展示你的jQuery代码,而不是你的PHP。

但是,在jQuery Valdiate插件中,要根据另一个required的状态为一个字段设置input条件,请使用depends,如下所示...

<强>的jQuery

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            "screentext_184": {
                required: {
                    depends: function(element) {
                        return $("input[name='screen_184'][value='Yes']").is(":checked");
                    }
                }
            }
        }
    });

});

<强> HTML

<form id="myform"> 
    Yes: <input type="radio" name="screen_184" value="Yes" />
    No: <input type="radio" name="screen_184" value="No" checked="checked" />
    <textarea name="screentext_184"></textarea>
    <input type="submit" />
</form>

工作演示:http://jsfiddle.net/qjhv6/

对于演示,text input字段是可选字段,直到勾选“是”radio为止。


编辑:根据Ryley的评论,这可以进一步简化:

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            "screentext_184": {
                required: "input[name='screen_184'][value='Yes']:checked"
            }
        }  
    });

});

演示:http://jsfiddle.net/txryf/