0

我正在使用 PHP 表单生成器类 v3.1 http://code.google.com/p/php-form-b ​​uilder-class/

我正在尝试创建一个动态表单

$options = array("Amount", "Reset Password");
$form->addElement(new Element\Radio("Command Type to Employee : ", "type", $options));

$form->addElement(new Element\TextBox("Amount :", "amount"));
$form->addElement(new Element\TextBox("New Password:", "password"));

当我选择“金额”单选按钮时,“金额”文本字段应显示和

当我选择“重置密码”单选按钮时,应显示“密码”文本字段。

任何人都可以帮助我解决它。提前致谢。

4

2 回答 2

1

如果您为项目设置了 jquery,则可以在呈现表单后在视图脚本中使用以下内容。这是未经测试的,但它应该工作。

<?php 
    // ... setup $form
    $form->render();
?>
<script>
$(function(){
    var amountElements = $('input[name=amount]').prev('label').andSelf();
    var passwordElements = $('input[name=password]').prev('label').andSelf();
    $('input[name=type]').change(function() {
        if ($(this).val() == 'Reset Password') {
            amountElements.hide();
            passwordElements.show();
        } else {
            amountElements.show();
            passwordElements.hide();
        }
    });

    // trigger the event for the selected radio button
    $('input[name=type]:checked').change();
});
</script>
于 2013-02-15T19:12:55.990 回答
0

HI Divey生成的html代码如下——

<style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block { color: #888; font-size: .9em; font-style: italic; }</style><form action="employeetransaction.php" id="vertical" method="post" class="ewForm"><label for="vertical-element-0"></label><input type="hidden" name="form" value="vertical" id="vertical-element-0"/><label for="vertical-element-1"></label><input type="hidden" name="empno" value="1007" id="vertical-element-1"/><label for="vertical-element-2"></label><BR><label for="vertical-element-3"></label><BR><label for="vertical-element-4">
    Command Type to Employee : </label><label class="radio"> <input id="vertical-element-4-0" type="radio" name="type" value="Amount" checked="checked"/> 
    Loan Approval </label> <label class="radio"> <input id="vertical-element-4-1" type="radio" name="type" value="Reset Password"/> 
    Reset Password </label> <label for="vertical-element-5"></label><BR><label for="vertical-element-6"></label><BR><label for="vertical-element-7">
    Amount :</label><input type="text" name="amount" id="vertical-element-7"/><label for="vertical-element-8">Password 
    :</label><input type="text" name="password" id="vertical-element-8"/><div class="form-actions"><input type="submit" value="Submit" name class="btn btn-primary" id="vertical-element-9"/> <input type="button" value="Cancel" name onclick="history.go(-1);" class="btn" id="vertical-element-10"/></div></form><script type="text/javascript">jQuery(document).ready(function() {      jQuery("#vertical").bind("submit", function() { 
            jQuery(this).find("input[type=submit]").attr("disabled", "disabled"); 
        });jQuery("#vertical :input:visible:enabled:first").focus();}); </script><script>
$(function(){
    $('input[name=type]').change(function() {
        if ($(this).val() == 'Reset Password') {
            $('input[name=amount]').closest('.control-group').hide();
            $('input[name=password]').closest('.control-group').show();
        } else {
            $('input[name=amount]').closest('.control-group').show();
            $('input[name=password]').closest('.control-group').hide();
        }
    });

    // trigger the event for the selected radio button
    $('input[name=type]:checked').change();
});
</script>
于 2013-02-17T02:09:30.647 回答