-3

我有一个使用 jQuery 验证脚本jquery.validate.js

我需要的是当用户选择是时 - 需要额外信息(必填字段),如果用户选择否 - 很好,继续

尝试了很长时间没有成功 - 添加

非常感谢您的帮助!

这是我的 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";
            }
4

1 回答 1

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/

于 2013-02-05T17:22:09.767 回答