SharePoint의 각 항목의 값을 Javascript에서 가져오고 설정하는 방법
1 소개
여기 후쿠오카는 계속 비로 뭔가 싫어집니다
그런데, SharePoint의 개발에 반드시 부속물인 것이, 각 항목치의 조작입니다.
소위 DOM 요소의 조작이군요. SharePoint 표준 기능은, 1행 텍스트 항목은 규정치를 설정할 수 있는데, 복수행 텍스트 항목은 규정치를 설정할 수 없거나, 정직 기능이 적다고 생각합니다.
그래서 다음과 같은 일을 하고 싶을 때에 항목값을 취득, 설정하는 방법을 소개합니다.
· 여러 줄 텍스트에 지정된 값의 HTML을 설정하고 싶습니다.
・저장시(postback시)에 자동적으로 값을 세트하고 싶다
· 선택 항목의 변화를 잡고 싶습니다.
· 페이지를 읽을 때 특정 항목에 특정 값이 입력되면 특정 제어를 원합니다.
2 주제
다음 코드는 jQuery를 사용합니다. SharePoint2013과 online에서 사용하고 있습니다.
설명하면, 다음의 캡쳐와 같이 렌더링 된 각 항목의 ID의 ff3 등의 (항목을 작성한 일련 번호가 되는) 값과 말미에 있는 항목의 종별명의 2개를 키로서 값을 취득 , 설정합니다.
다음은 코드입니다.
domgetset.js
// 項目の種別(本当はconstが良さそうだけどIEなので)
var Text = 'Text';
var Richtext = 'Richtext';
var DropDown = 'DropDown';
var DateType = 'DateType';
var UserGroup = 'UserGroup';
var SearchKeyff12 = 'ff12'; // DOM要素のキー
var setname = 'Hello!';
var getname = '';
// コール側
// テキストフィールドに設定
setElement(SearchKeyff12, Text, setname);
// テキストフィールドから取得
getname = getElement(SearchKeyff12, Text);
// コール元:ゲッター
// In1:DOMのID In2:DOMの種類 Retval:DOMの値
function getElement( SearchKeyID, DOMType ){
var Retval = '';
switch (DOMType) {
case 'Text':
// テキスト項目取得
$("[id*='TextField']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
case 'Richtext':
// リッチテキスト項目取得(複数行)
$("[id$='_TextField_inplacerte']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).html();
}
});
break;
case 'DropDown':
// 選択項目取得
$("select[id*='_DropDownChoice']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
case 'DateType':
// 日付項目取得
$("[name*='DateTimeFieldDate']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
case 'UserGroup':
// ユーザーグループ項目取得
$("[id*='_UserField_hiddenSpanData']").each(function (k, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
default:
break;
}
return Retval;
}
// コール元:セッター
// In1:DOMのID In2:DOMの種類 In3:DOMの値
function setElement( SearchKeyID, DOMType, inputvalue ){
switch (DOMType) {
case 'Text':
// テキスト項目設定
$("[id*='TextField']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).val(inputvalue);
}
});
break;
case 'Richtext':
// リッチテキスト項目設定(複数行)
$("[id$='_TextField_inplacerte']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).html(inputvalue);
}
});
break;
case 'DropDown':
// 選択項目設定
$("select[id*='_DropDownChoice']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).val(inputvalue);
}
});
break;
case 'DateType':
// 日付項目設定
$("[name*='DateTimeFieldDate']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).val(inputvalue);
}
});
break;
case 'UserGroup':
// ユーザーグループ項目設定
$("[id*='_UserField_upLevelDiv']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).html(inputvalue);
}
});
break;
default:
break;
}
}
3 결론
뭔가 다른 좋은 방법이 있으면 공유 부탁드립니다. 그리고 코드상의 낭비를 지적해 주시면 기쁩니다.
그럼 고마워요.
Reference
이 문제에 관하여(SharePoint의 각 항목의 값을 Javascript에서 가져오고 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenya_snowwhite/items/600319d01bf018c4acf9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 코드는 jQuery를 사용합니다. SharePoint2013과 online에서 사용하고 있습니다.
설명하면, 다음의 캡쳐와 같이 렌더링 된 각 항목의 ID의 ff3 등의 (항목을 작성한 일련 번호가 되는) 값과 말미에 있는 항목의 종별명의 2개를 키로서 값을 취득 , 설정합니다.
다음은 코드입니다.
domgetset.js
// 項目の種別(本当はconstが良さそうだけどIEなので)
var Text = 'Text';
var Richtext = 'Richtext';
var DropDown = 'DropDown';
var DateType = 'DateType';
var UserGroup = 'UserGroup';
var SearchKeyff12 = 'ff12'; // DOM要素のキー
var setname = 'Hello!';
var getname = '';
// コール側
// テキストフィールドに設定
setElement(SearchKeyff12, Text, setname);
// テキストフィールドから取得
getname = getElement(SearchKeyff12, Text);
// コール元:ゲッター
// In1:DOMのID In2:DOMの種類 Retval:DOMの値
function getElement( SearchKeyID, DOMType ){
var Retval = '';
switch (DOMType) {
case 'Text':
// テキスト項目取得
$("[id*='TextField']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
case 'Richtext':
// リッチテキスト項目取得(複数行)
$("[id$='_TextField_inplacerte']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).html();
}
});
break;
case 'DropDown':
// 選択項目取得
$("select[id*='_DropDownChoice']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
case 'DateType':
// 日付項目取得
$("[name*='DateTimeFieldDate']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
case 'UserGroup':
// ユーザーグループ項目取得
$("[id*='_UserField_hiddenSpanData']").each(function (k, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
Retval = $(elem).val();
}
});
break;
default:
break;
}
return Retval;
}
// コール元:セッター
// In1:DOMのID In2:DOMの種類 In3:DOMの値
function setElement( SearchKeyID, DOMType, inputvalue ){
switch (DOMType) {
case 'Text':
// テキスト項目設定
$("[id*='TextField']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).val(inputvalue);
}
});
break;
case 'Richtext':
// リッチテキスト項目設定(複数行)
$("[id$='_TextField_inplacerte']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).html(inputvalue);
}
});
break;
case 'DropDown':
// 選択項目設定
$("select[id*='_DropDownChoice']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).val(inputvalue);
}
});
break;
case 'DateType':
// 日付項目設定
$("[name*='DateTimeFieldDate']").each(function(i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).val(inputvalue);
}
});
break;
case 'UserGroup':
// ユーザーグループ項目設定
$("[id*='_UserField_upLevelDiv']").each(function (i, elem) {
if ($(elem).is("[id*='" + SearchKeyID + "']")){
$(elem).html(inputvalue);
}
});
break;
default:
break;
}
}
3 결론
뭔가 다른 좋은 방법이 있으면 공유 부탁드립니다. 그리고 코드상의 낭비를 지적해 주시면 기쁩니다.
그럼 고마워요.
Reference
이 문제에 관하여(SharePoint의 각 항목의 값을 Javascript에서 가져오고 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenya_snowwhite/items/600319d01bf018c4acf9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(SharePoint의 각 항목의 값을 Javascript에서 가져오고 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenya_snowwhite/items/600319d01bf018c4acf9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)