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生成された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 に答える