0

ページ上で jquery ダイアログ ボックスに複数回リンクされたフォーム (レポート フォーム) があります。クロス ポスティング (送信) を避けるために、ランダムな文字列を追加しました。送信後にフォーム (ReportContent) フィールドをクリアしたいのですが、少し問題があります。ただし、以下の 2 番目のスクリプトを使用した単一ページ アクセスの送信では問題なく動作します。助けてください... 前もって感謝します... クリス

<?php echo $ajax->form(array('type' => 'post', 'options' => array('model'=>'Group', 'id'=> "submitThis_".$random, 'update' => "updateGroupReport_".$group['Group']['id']. '-'.$random, 'complete' => 'javascript:resetReportGroupForm(' . $random . ');', 'url' => array('controller' => 'groups', 'action' => 'report/'. $group['Group']['id']) ) )); ?>
<?php  echo $this->Form->textarea('Report.content', array('class' => "ReportContent_".$random)); ?>
<?php echo $form->end('Report'); ?>

これは働きたい、...

<script type="text/javascript">
function resetReportGroupForm($id){
    document.getElementById("submitThis_<?php echo ($random); ?>"), function () {
        $('.ReportContent_<?php echo ($random); ?>').val('');
        };
    };
</script>

これは、単一のページアクセスで正常に機能します...

<script type="text/javascript">
function resetReportGroupForm($id){
    document.getElementById("submitThis_<?php echo ($random); ?>").reset(); 
    }
</script>
4

2 に答える 2

0

私はそれに別のアプローチを得ました...そしてそれはうまく機能しています...誰かがそれを必要とするなら、ここにコピーがあります...

<div class="clr"></div>

<div id="updateGroupReport_<?php echo $group['Group']['id'] ?>-<?php echo $random ?>" style="float: left; width: 200px; margin: 5px 0 5px 15px; font-size: 13px; text-align: left;"></div>

<div class="clr"></div>

<div style="float: left; width: 450px; margin: 0 0 20px 15px; font-size: 13px; text-align: left;">

<?php echo $this->Form->create('Group', array('id'=> "FormId_".$random)); ?>
    <?php echo $form->hidden('Report.sender_id', array('value' => $user_object['id'])) ?>

    <p style="font-size: 1.2em; font-weight: normal;">
<?php  echo $this->Form->textarea('Report.content'); ?>
    </p>

    <p>
<?php echo $ajax->submit('Report', array('url'=> array('controller'=>'groups', 'action'=>'report_spam/'. $group['Group']['id']),'id' => "button_".$random, 'update' => "updateGroupReport_".$group['Group']['id']. '-'.$random )); ?>
<?php echo $form->end(); ?>
    </p>

</div>

<script type="text/javascript">
jQuery(document).ready(function() {
    $('#button_<?php echo ($random); ?>').click(function(){
            $(':input', '#FormId_<?php echo ($random); ?>')
        .not(':button, :submit, :reset, :hidden')
        .val('')
        .removeAttr('checked')
        .removeAttr('selected');
        }); 

});
</script>

<div class="clr"></div>
于 2013-11-01T00:37:12.853 に答える
0

次のようなことを試してみませんか。

$('form#submitThis_<?php echo $random?>').find("input[type=text], textarea").val("");

代わりにjQueryセレクターを使用してフォームをリセットする必要があるように感じます...

$('form#yourFormName').submit(function() {
    // process ajax etc

    $(this).find("input[type=text], textarea").val("");
});
于 2013-10-31T23:44:31.580 に答える