give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

SharePointの入力フォームをJavaScriptで操作する方法

以下のページに説明があります。


http://arichterwork.blogspot.com/2008/07/customized-input-forms-javascript.html


たとえばクエリ文字列で値を受け取って、それをデフォルト値としてテキストボックスに設定したりできます。


ポイントは入力フォームにContent Editor Web Partを追加し、その中にJavaScriptを記述することです。


また、入力フォームにContent Editor Web Partを追加するために、いったん「〜NewForm.aspx?ToolPaneView=2」と打ち込んで、画面を編集モードにする必要があります。


また、WYSIWYG編集モードではなく、ソース編集モードでないとJavaScriptは正しく編集できません。
さらに、何か表示する内容がなければJavaScriptがクリアされてしまいます。
おいらの場合はダミーのBRタグを打ち込んで、この現象を回避しました。


テキストボックスやボタン等をスクリプトで操作したい場合はID属性を取得したりする必要がありますが、SharePointの場合ランダムな(?)IDが振られるので簡単にIDが分かりません。
おいらは以下のようなスクリプトを書いてIDを特定しました。

for (var i = 0; i < document.getElementsByTagName('input').length; i++) {
  var obj = document.getElementsByTagName('input')[i];
  if (obj.type == 'text') {
    document.write(obj.id);
  }
}


なお、スクリプトによるクエリ文字列の取得は以下のページを参考にしました。


http://homepage2.nifty.com/BASH/WWW/JavaScript/qs.html


そんな感じで色々とクセはありますが、何とかすれば実現は可能です。
めでたしめでたし!