活動のフォーム画面からのページ遷移に関して

活動のフォーム画面からのページ遷移に関して

- Tomoyuki Nakamura の投稿
返信数: 2

現在,自分はMoodle3.0を用いて活動モジュールを開発しております.


このたび,活動モジュールのフォームのページにおきまして,https://dev.onedrive.com/sdk/js-v7/js-picker-open.htm のページにあるような「onedriveファイルピッカ―」を作成しようと試みています.


無事,フォームのページにonedriveのファイルピッカ―を表示するためのボタンを生成することに成功できたのですが,そのボタンをクリックするとファイルピッカ―用の新たなウィンドウが表示されるとともに「保存してコースに戻る」のボタンを押したときと同じ挙動をとります.


このような挙動を起こさないようにするためにはどのようにすればよいのでしょうか.

お手数をおかけしますがよろしくお願いします.


・onedriveファイルピッカ―ボタンクリック前



・onedriveファイルピッカ―表示後(必須入力事項を入力する必要があるとなっているので,このフォームのページを遷移しようとしているのではないかと思います

.)



・フォームのプログラム(onedriveファイルピッカ―表示用のもののみ)

$mform -> addElement ( 'html' , '<div class="row">');

$mform -> addElement ( 'html' ,'<input id="downloadLink" type="hidden" value="download" name="actionType" checked="checked"> ');

$mform -> addElement ( 'html' , '</div>');

$mform -> addElement ( 'html' , '<div class="row">');

$mform -> addElement ( 'html' ,'<button onclick="javascript:launchOneDrivePicker();" title="Open to OneDrive">');

$mform -> addElement ( 'html' ,'<img src="https://js.live.net/v5.0/images/SkyDrivePicker/SkyDriveIcon_white.png" style="vertical-align: middle; height: 16px;">');

$mform -> addElement ( 'html' ,'<font class="">Open to OneDrive</font>') ;  

$mform -> addElement ( 'html' ,'</button>');

$mform -> addElement ( 'html' , '</div>');



$mform -> addElement ( 'html' , '<div id="pickerConsole" class="console">');


$mform -> addElement ( 'html' , '</div>');

Tomoyuki Nakamura への返信

Re: 活動のフォーム画面からのページ遷移に関して

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators


課題モジュール (mod/assign) 設定画面の「課題名」入力欄を例に挙げます。

「課題名」に課題名を入力せずに「保存してコースに戻る」ボタンをクリックした場合、「課題名」入力欄の上に「必須」と表示されてしまいますが、下記プログラム修正でエラーメッセージ「あなたはここに値を入力する必要があります」を表示しないようにすることは可能です。

修正対象プログラム:
mod/assign/mod_form.php

修正箇所:
51行目

[ 修正前 ]
        $mform->addElement('text', 'name', get_string('assignmentname', 'assign'), array('size'=>'64'));
        if (!empty($CFG->formatstringstriptags)) {
            $mform->setType('name', PARAM_TEXT);
        } else {
            $mform->setType('name', PARAM_CLEANHTML);
        }
        $mform->addRule('name', null, 'required', null, 'client');
        $mform->addRule('name', get_string('maximumchars', '', 255), 'maxlength', 255, 'client');

[ 修正後 ]
        $mform->addElement('text', 'name', get_string('assignmentname', 'assign'), array('size'=>'64'));
//        if (!empty($CFG->formatstringstriptags)) {
//            $mform->setType('name', PARAM_TEXT);
//        } else {
            $mform->setType('name', PARAM_CLEANHTML);
//        }
        $mform->addRule('name', null, 'required', null, 'client');
        $mform->addRule('name', get_string('maximumchars', '', 255), 'maxlength', 255, 'client');
        $mform->setDefault('name', ' ');

添付 assignment_settings.png
Mitsuhiro Yoshida への返信

Re: 活動のフォーム画面からのページ遷移に関して

- Tomoyuki Nakamura の投稿

ありがとうございます.


原因がわかりました.

どうやら活動のフォームの画面は.クリックしたボタンのタイプが「submit」であればページを遷移することに気が付き,「submit」しないように設定するとうまくいきました.

お手数をお掛けしました.